• NumPy数组


    NumPy数组的维数称为秩,也就是轴,一维数组的轴为1,二维数组的轴为2,以此类推。

    如果声明axis=0代表沿着第0轴进行操作(对每一列进行操作),axis=1则表示沿着第1轴进行操作,对每一行进行操作,其中在NumPy中比较重要的ndarray对象属性有:

    ndarry.ndim :表示轴的数量,数组的维数

    ndarry.shape 数组的维度,对于矩阵,n行m列

    ndarry.size 数组元素的总个数,相当于shape中的n*m的值

    ndarry.dtype ndarray对象的元素类型

    ndarry.itemsize 每个元素的大小,以字节为单位表示

    ndarry.flags 内存信息

    ndarry.real 元素的实部

    ndarry.imag 元素的虚部

    下面来实现一个数组转换:

    import numpy as np
    a=np.arange(36);
    print(a.ndim)
    # 调整维度
    b=a.reshape(3,4,2)
    print(b.ndim)

    调试后:

    D:EappliancePythonAllpython376python376.exe D:/AProjectS/Pyaaz/venv/src/numpyarry.py
    Traceback (most recent call last):
      File "D:/AProjectS/Pyaaz/venv/src/numpyarry.py", line 5, in <module>
        b=a.reshape(3,4,2)
    ValueError: cannot reshape array of size 36 into shape (3,4,2)
    1

    从错误信息中我们可知,我们重新定义的数据维度必须取余后为零,也就是3*4*2不等于36造成的这个错误,我们修改程序后再次运行

    import numpy as np
    a=np.arange(36);
    print(a.ndim)
    # 调整维度
    b=a.reshape(3,4,3)
    print(b.ndim)

    运行结果:

    D:EappliancePythonAllpython376python376.exe D:/AProjectS/Pyaaz/venv/src/numpyarry.py
    1
    3
    
    Process finished with exit code 0

    接下来代码原来一样:

    aa=np.array([[1,2],[9,8]])
    aa.shape=(4,1)
    print(aa)

    运行结果:

    [[1]
     [2]
     [9]
     [8]]
    
    Process finished with exit code 0

    ndarry.itemsize以字节的形式返回数组中每一个元素的大小

    对于complex128类型的数组,它的itemsize的大小为16(占有128bit,每个字节长度为8,故攻占有16个字节)

    aa=np.array([[1,2],[9,8]],dtype=np.complex128)
    aa.shape=(4,1)
    print(aa.itemsize)

    运行结果:

    16
    
    Process finished with exit code 0

    ndarry.flags

    ndarry.flags属性返回的是ndarry对象的内存信息,包括以下属性

    C_CONTIGUOUS (C) 数据是在一个单一的C风格的连续段中

    F_CONTIGUOUS (F) 数据是在一个单一的Fortran风格的连续段中

    OWNDATA (O)  数组拥有它所使用的内存或从另一个对象中借用它

    WRITEABLE (W)  数据区域可以被写入,将该值设置为 False,则数据为只读

    ALIGNED (A)  数据和所有元素都适当地对齐到硬件上

    UPDATEIFCOPY (U) 这个数组是其它数组的一个副本,当这个数组被释放时,原数组的内容将被更新

  • 相关阅读:
    halcon7月license
    软设考试成绩查询结果
    Halcon自学笔记
    Window_Store
    Windows_Store之2048
    基于C#开发的2048
    MVC+EF+EasyUI实现CRUD
    ASP.NET MVC Model验证总结
    浙江省三级数据库考试
    基于C#的短信发送
  • 原文地址:https://www.cnblogs.com/supershuai/p/12216601.html
Copyright © 2020-2023  润新知