一、通用函数
B = np.arange(3)
print(B)
print(np.exp(B))
print(2.71828183 * 2.71828183)
print(np.sqrt(B))
C = np.array([2., -1., 4.])
print(np.add(B, C))
二、索引,切片和迭代
一维数组的索引,切片,迭代跟普通的python列表一样
a = np.arange(10) ** 3
print(a)
print(a[2])
print(a[2:5])
print(a[:6:2]) # 等价于a[0:6:2]
a[:6:2] = -1000
print(a)
print(a[::-1])# 反转数组a
三、多维数组可以在每个轴上索引,多个索引用,
分隔
def f(x,y):
return 10*x +y
b=np.fromfunction(f, (5,4), dtype=int)
print(b)
注意:np.fromfunction(f, (5,4), dtype=int),fromfunction(f, (5,4))不是把5和4传给x,y,代表一个数组,生成5行4列的一个矩阵。x默认为0,1,2,3,4……,y是算出10*x之后往后加1,直到满足5行4列的矩阵。
#help(np.fromfunction)
print( b[2,3])#2行3列
print(b[0:5, 1])#输出下标0-5第一列
print(b[:, 1])#输出列下标为1所有的数
print( b[1:3, :])#输出行下标1,2的数,不包括3
当索引数少于轴数时,缺失的索引认为是全切片:
print(b[-1]) # 等价于 b[-1,:]
同样可以使用...
来表示全切片,它代表补全剩下的所有索引。
c = np.array([[[0,1,2],[10,12,13]],
[[100,101,102],[110,112,113]]])
print(c.shape)
print(c[1,...])#行下标为1所有的数
print(c[...,2])#列下标为2所有的数
#print(c[..,1,...])#错误
如果想遍历每个元素,可以使用flat
属性:
for element in b.flat:
print(element)
总结:
1.切片:print(a[:6:2]) # 等价于a[0:6:2]
print(a[::-1])# 反转数组a
2.np.fromfunction(f, (5,4), dtype=int),fromfunction(f, (5,4))不是把5和4传给x,y,代表一个数组,生成5行4列的一个矩阵。x默认为0,1,2,3,4……,y是算出10*x之后往后加1,直到满足5行4列的矩阵。
3.全切片:print(b[-1,:]) # 等价于 b[-1,:] 或者使用……
4.想遍历每个元素,可以使用flat
属性。