版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38125866/article/details/82668615
- Numpy 的的主要对象是同构多维数组。它是一个元素表,其中的数据类型是相同的。如[1,2,3], [1.0,2.0,3.0]。在Numpy维度中称为轴。例如3D空间中的点坐标[1,2,1]具有一个轴,该轴有三个元素,所以它的长度为3。
[
[1,2,3],
[4,5,6],
]
#该数组有两个轴
#第一个轴的长度为2.
#第二个轴的长度为3.
- Numpy的ndarry类提供对array的支持,与python标准库中的array不同,后者仅能处理一维数组,且功能较少。
ndarray.ndim
阵列的轴数(尺寸)。
ndarray.shape
数组的大小。这是一个整数元组,表示每个维度中数组的大小。对于具有n行和m列的矩阵,shape将是(n,m)。shape因此,元组的长度 是轴的数量ndim。
ndarray.size
数组的元素总数。这相当于元素的乘积shape。
ndarray.dtype
描述数组中元素类型的对象。可以使用标准Python类型创建或指定dtype。此外,NumPy还提供自己的类型。例如numpy.int32,numpy.int16和numpy.float64。
ndarray.itemsize
数组中每个元素的大小(以字节为单位)。例如,类型的元素数组float64有itemsize8(= 64/8),而其中一个类型complex32有itemsize4(= 32/8)。它相当于ndarray.dtype.itemsize。
ndarray.data
包含数组实际元素的缓冲区。通常,不需要使用此属性,使用索引工具访问数组中的元素。
- 例1
In [1]: import numpy as np
In [2]: a = np.arange(12).reshape(3,4) #arrange(12)跟python自带的range一样的意思,reshape(n,m)转为n行m列的矩阵
In [3]: a
Out[3]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
In [4]: a.ndim #轴数
Out[4]: 2
In [5]: a.dtype.name #获取数组的类型名称
Out[5]: 'int64'
In [6]: type(a) #获取对象类型
Out[6]: numpy.ndarray
In [7]: b = np.array([6,7,8])
In [8]: b
Out[8]: array([6, 7, 8])
In [9]: type(b)
Out[9]: numpy.ndarray
- 数组创建
#使用array创建数组,注意参数是列表或元组。
In [12]: np.array( [1.0, 2.0, 3.0], dtype=int) #dtype创建时指定数据类型。
Out[12]: array([1, 2, 3])
#使用ndarray创建数组,参数是列表或元组,该列表或元组中的数据表示维度。
In [13]: np.ndarray([2,3])#2行三列矩阵,随机初始化
Out[13]:
array([[6.92037299e-310, 6.92037299e-310, 2.37663529e-312],
[2.46151512e-312, 2.35541533e-312, 8.48798317e-313]])
#zeros函数创建的是一个由0填充的数组。
In [32]: np.zeros((2,2))
Out[32]:
array([[0., 0.],
[0., 0.]])
In [33]: np.zeros([3,4])
Out[33]:
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
#ones函数创建的是一个由1填充的数组。
In [34]: np.ones((3,4))
Out[34]:
array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])
In [35]: np.ones([2,2])
Out[35]:
array([[1., 1.],
[1., 1.]])
#numpy提供了一个类似range的函数
In [38]: np.arange(10,30,5)
Out[38]: array([10, 15, 20, 25])
#当arange与浮点参数一起使用时,由于有限的浮点精度,通常无法预测获得的元素数量。出于这个原因,通常最好使用linspace作为参数接收我们想要的元素数量的函数
In [45]: from numpy import pi
In [46]: np.linspace( 0, 2, 9 )
Out[46]: array([0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])
In [47]: x = np.linspace( 0, 2*pi, 100 )
In [48]: f = np.sin(x)
In [49]: f
- 打印数组
In [55]: a = np.array([1,2,3,4,5])
In [56]: print(a)
[1 2 3 4 5]
注意:如果数据过多,打印时会隐藏中间部分的数据,如果需要强制显示,
则设置 np.set_printoptions(threshold=np.nan)