美文网首页
NumPy的ndarray:一种多维数组对象

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

作者: _aLIEz | 来源:发表于2020-02-02 22:07 被阅读0次

    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将其转换为 数值形式

    相关文章

      网友评论

          本文标题:NumPy的ndarray:一种多维数组对象

          本文链接:https://www.haomeiwen.com/subject/jlkcxhtx.html