数组的索引和切片
与python的列表类似
切片: a[开始下标:结束下标:步长](切片不包括最后的下标,步长可缺省,开始下标和结束下标也可缺省)
b=[0,1,2,3,4,5]
b[0:4:2]
Out: [0, 2]
b[0:4]
Out: [0, 1, 2, 3]
ps:多维数组的索引使用逗号分隔
a = np.arange(24).reshape((2,3,4))
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
a[1,2,3]
输出结果为 23
多维数组的切片
a[:, 1, -3]
# 第一个维度不管,默认0:len(),意思是是都取,在第二个维度中取第一个(均是从零开始计数),第三个维度中取倒数第三个,
Out[11]: array([ 5, 17])
a[:,1:3,::2]
# 第一个维度都取,第二个维度取第1到第3个,即
# [[[ 4, 5, 6, 7],
# [ 8, 9, 10, 11]],
#
# [[16, 17, 18, 19],
# [20, 21, 22, 23]]]
# 第三个维度都取,但是步长为2
# 结果为:
Out[15]:
array([[[ 4, 6],
[ 8, 10]],
[[16, 18],
[20, 22]]])
ndarray数组运算
与标量的运算
略
一元函数运算
函数 | 说明 |
---|---|
np.abs(x) np.fabs(x) |
计算数组各元素的绝对值 |
np.sqrt(x) |
计算数组各元素的平方根 |
np.square(x) |
计算数组各元素的平方 |
np.log(x) np.log10(x) np.log2(x) |
计算数组各元素的自然对数、10底对数和2底对数 |
np.ceil(x) np.floor(x) |
计算数组各元素的ceiling值 或 floor值 |
np.rint(x) |
计算数组各元素的四舍五入值 |
np.modf(x) |
将数组各元素的小数和整数部分以两个独立数组形式返回 |
np.cos(x) np.cosh(x) np.sin(x) np.sinh(x) np.tan(x) np.tanh(x) |
计算数组各元素的普通型和双曲型三角函数 |
np.exp(x) |
计算数组各元素的指数值 |
np.sign(x) |
计算数组各元素的符号值,1(+), 0, ‐1(‐) |
二元函数运算
函数 | 说明 |
---|---|
+ ‐ * / ** |
两个数组各元素进行对应运算 |
np.maximum(x,y) np.fmax() np.minimum(x,y) np.fmin() |
元素级的最大值/最小值计算,当运算有整型和浮点型时,输出结果转换为浮点型 |
np.mod(x,y) |
元素级的模运算 |
np.copysign(x,y) |
将数组y中各元素值的符号赋值给数组x对应元素 |
> < >= <= == != |
算术比较,产生布尔型数组 |