NumPy的ndarray:一种多维数组对象

2020-02-02  本文已影响0人  _aLIEz

NumPy(Numerical Python的简称)是高性能科学计算和数据分析 的基础包。
NumPy的ndarray:一种多维数组对象
ndarray是一个通用的同构数据多维容器,也就是说,其中的所有 元素必须是相同类型的。每个数组都有一个shape(一个表示各维度大 小的元组)和一个dtype(一个用于说明数组数据类型的对象)

N维数组对象(即ndarray)
 创建:
    1. 使用array函数
        1. 接受一切序列型 的对象(包括其他数组),然后产生一个新的含有传入数据的NumPy数组
               In [1]: data1 = [6, 7.5, 8, 0, 1]
               In [2]: arr1 = np.array(data1) 
               In [3]: arr1 
               Out[3]: array([ 6. , 7.5, 8. , 0. , 1. ])   
               arr2d = np.array([[1,2,3],[4,5,6],[7,8,9]])  
        2. 嵌套序列(比如由一组等长列表组成的列表)将会被转换为一个多维数组
               In [4]: data2 = [[1, 2, 3, 4], [5, 6, 7, 8]] 
               In [5]: arr2 = np.array(data2) 
               In [6]: arr2 
               Out[6]: array([[1, 2, 3, 4], [5, 6, 7, 8]])  
        3. 比如,zeros和 ones分别可以创建指定长度或形状的全0或全1数组。
           empty可以创建一个没有任何具体值的数组
           认为np.empty会返回全0数组的想法是不安全的。很多情况 下(如前所示),它返回的都是一些未初始化的垃圾值。eye:单位矩阵
           np.zeros((3, 6))
        4. arange是Python内置函数range的数组版: np.arange(15)
数据类型

由于NumPy关注的是数值计 算,因此,如果没有特别指定,数据类型基本都是float64(浮点数)。ndim返回的是数组的维度,返回的只有一个数,该数即表示数组的维度。

数据类型保存在一个特殊的 dtype对象中

        In[7]: arr1 = np.array([1, 2, 3], dtype=np.float64)
        In[8]: arr1.dtype
        Out[8]: dtype('float64')

数值型 dtype的命名方式相同:一个类型名(如float或int),后面跟一个用于表 示各元素位长的数字。
类型转换:通过ndarray的astype方法显式地转换其dtype

                In [9]: arr = np.array([1, 2, 3, 4, 5]) 
                In [10]: arr.dtype 
                Out[10]: dtype('int64') 
                In [11]: float_arr = arr.astype(np.float64) 
                In [12]: float_arr.dtype 
                Out[12]: dtype('float64')

如果将浮点数转换成整数, 则小数部分将会被截断如果某字符串数组表示的全是数字,也可以用astype将其转换为 数值形式

上一篇下一篇

猜你喜欢

热点阅读