上一篇:
橘猫吃不胖:numpy回顾小结(一)zhuanlan.zhihu.com函数
numpy中,定义了很多的函数,常用的数学函数,比如:
np.sin(a)
np.sqrt(a)
聚合函数
除了数学函数,还有聚合函数
数组的索引机制
数组的每个元素都有索引,索引分为正向索引和负向索引
b = np.arange(15,21)
b[0]
b[1]
b[-1]
b[-2]
切片
切片,是指抽取数组的一部分元素,生成新的数组
切片操作也是基于索引
c = np.arange(10,16)
c[2:4]
c[::3]
这里,相当于传入3个参数,第3个可以省略,默认是1
第一个省略,默认从0开始;第二个省略,默认是最大索引
数组遍历
直接使用for循环遍历:
for i in c:
print('i:',i)
还可以使用
numpy.apply_along_axis
( func1d, axis, arr, *args, **kwargs)
Apply a function to 1-D slices along the given axis.
axis=0,表示按列进行处理;axis=1,表示按照行进行处理
可以按照某个轴,对每个元素进行处理
np.apply_along_axis(lambda x : x+1, axis=0, arr=c)
a = np.arange(10,19).reshape((3,3))
np.apply_along_axis(np.sum, axis=0, arr=a)
np.apply_along_axis(np.sum, axis=1, arr=a)
布尔数组
在对数组进行筛选或者选取元素的时候,前面说过切片,索引,还可以使用布尔数组
a
a>14
a[a>14]
数组连接
将多个数组进行连接,按行或者按列进行拼接
a = np.zeros((3,3))
b = np.ones((3,3))
np.vstack((a,b))
np.hstack((a,b))
多个数组之间的操作,使用column_stack()、row_stack()
数组切分
有拼接,也就有分割
a = np.arange(16).reshape((4,4))
np.hsplit(a,2)
np.vsplit(a,2)