Numpy是Python数值计算最重要的基础包。⼤多数提供科学计算的包都是⽤NumPy的数组作为构建基础。可以⾼效处理⼤数组的数据,是NumPy数值计算特别重要的原因之⼀。他的部分功能有:
(1)ndarray,⼀个具有⽮量算术运算和复杂⼴播能⼒的快速且节省空间的多维数组。
(2)⽤于对整组数据进⾏快速运算的标准数学函数(⽆需编写循环)。
(3)⽤于读写磁盘数据的⼯具以及⽤于操作内存映射⽂件的⼯具。
(4)线性代数、随机数⽣成以及傅⾥叶变换功能。
NumPy最重要的⼀个特点就是其N维数组对象(即ndarray),该对象是⼀个快速⽽灵活的⼤数据集容器。你可以利⽤这种数组对整块数据执⾏⼀些数学运算,其语法跟标量元素之间的运算⼀样。接下来了解一下numpy中的创建数组。
。
创建数组(代码在jupyter中验证)
最简单的是使⽤array函数。它接受⼀切序列型的对象(包括其他数组),然后产⽣⼀个新的含有传⼊数据的NumPy数组。以⼀个列表的转换为例:
data1 = [6, 7.5, 8, 0, 1]
arr1 = np.array(data1)
arr1
#结果如下
array([6. , 7.5, 8. , 0. , 1. ])
可以采用数组的属性ndim函数和shape函数来查看数组的维度和shape,用dtype来查看数据类型
data2 = [[1, 2, 3, 4], [5, 6, 7, 8]]
arr2 = np.array(data2)
arr2
arr2.ndim
arr2.shape
arr2.dtype
#对应的结果如下
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
2
(2,4)
dtype('int32')
其次还有一些函数也可以新建数组。比如zero和ones分别可以构建制定长度或形状的全为0或全为1的数组。empty可以创建一个没有任何具体值的数组
np.zeros(10)
#输出array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
np.zeros((3, 6))
#输出array([[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]])
np.ones(6)
#输出array([1., 1., 1., 1., 1., 1.])
np.ones((3,6))
#输出array([[1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1.]])
np.empty((2, 3, 2))
#输出array([[[0., 0.],
[0., 0.],
[0., 0.]],
[[0., 0.],
[0., 0.],
[0., 0.]]])
函数 | 说明 |
array | 将输入数据(列表、元组、数组或其他序列类型)转换为ndarray.要么推断出dtype,要么特别指定dtype。默认直接复制输入数据。 |
asarray | 将输入转换为ndarray,如果输入本身就是一个ndarray就不进行复制。 |
arange | 类似于内置的range函数,但是返回的是一个ndarray而不是列表。 |
ones,ones_like | 根据指定的形状和dtype创建一个全为1数组。one_like以另一个数组为参数,并根据其形状和dtype创建一个全为1数组。 |
zeros,zeros_like | 类似于ones和ones_like,只不过产生的全是0数组而已。 |
empty,empty_like | 创建新数组,只分配内存空间但不填充任何值。 |
full,full_like | 用fill value 中的所有值,根据指定的形状和dtype创建一个数组。full_like使用另一个数组,用相同的形状和dtype创建。 |
eye,identity | 创建一个正方形的N小N单位矩阵(对角线为1,其余为0)。 |
今天的分享到此为止。