这是我参与11月更文挑战的第14天,活动详情查看:2021最后一次更文挑战
通函数的概念:Numpy直接提供的数学函数成为通函数。例如:sum、add、cell、floor等。
In [1]: import numpy as np
In [2]: data = np.arange(1, 9)
In [3]: data
Out[3]: array([1, 2, 3, 4, 5, 6, 7, 8])
In [4]: np.sum(data)
Out[4]: 36
In [5]: data2 = np.arange(1, 9)
In [6]: data2
Out[6]: array([1, 2, 3, 4, 5, 6, 7, 8])
In [7]: np.add(data, data2)
Out[7]: array([ 2, 4, 6, 8, 10, 12, 14, 16])
In [8]: np.mean(data)
Out[8]: 4.5
In [9]: np.where(data > 5)
Out[9]: (array([5, 6, 7]),)
Numpy的一维数组也支持类似Python的列表的索引、切片和迭代遍历。
In [11]: data = np.arange(1, 10)
In [12]: data
Out[12]: array([1, 2, 3, 4, 5, 6, 7, 8, 9])
In [13]: data[2: 7]
Out[13]: array([3, 4, 5, 6, 7])
In [14]: data[::-1]
Out[14]: array([9, 8, 7, 6, 5, 4, 3, 2, 1])
In [15]: data[0] = 99
In [16]: data
Out[16]: array([99, 2, 3, 4, 5, 6, 7, 8, 9])
In [17]: for i in data:
...: print(i)
...:
99
2
3
4
5
6
7
8
9
Numpy多维数组的访问,通过写明哪行哪列所在的轴即可。
In [18]: data = np.array([(1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11
...: , 12), (13, 14, 15, 16)])
In [19]: data
Out[19]:
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16]])
In [20]: data[0,2]
Out[20]: 3
In [21]: data[0:3, 2]
Out[21]: array([ 3, 7, 11])
In [22]: data[:, 2]
Out[22]: array([ 3, 7, 11, 15])
In [23]: data[0:2, :]
Out[23]:
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
In [24]: data[-1, :]
Out[24]: array([13, 14, 15, 16])
In [25]: data[-1]
Out[25]: array([13, 14, 15, 16])
In [26]: data[-1, ...]
Out[26]: array([13, 14, 15, 16])
多维数组的迭代:
对多维数组的迭代是对一个轴(行)的迭代:
In [28]: data
Out[28]:
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16]])
In [27]: for row in data:
...: print(row)
...:
[1 2 3 4]
[5 6 7 8]
[ 9 10 11 12]
[13 14 15 16]
如果想对所有元素进行迭代,则需要调用flat属性:
In [29]: for row in data.flat:
...: print(row)
...:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16