numpy数组值的替换
通过索引进行对应值的替换
a3 = np.random.randint(0,10,size = (3,5))
a3
>>array([[1, 1, 6, 6, 6],
[8, 5, 2, 8, 0],
[2, 7, 4, 9, 6]])
a3[1] = 0
a3
>>array([[1, 1, 6, 6, 6],
[0, 0, 0, 0, 0],
[2, 7, 4, 9, 6]])
a3[1] = np.array([0,1,2,3,4])
a3
>>array([[1, 1, 6, 6, 6],
[0, 0, 0, 0, 0],
[2, 7, 4, 9, 6]])
a3[a3<3] = 1
a3
>>array([[1, 1, 6, 6, 6],
[1, 1, 1, 3, 4],
[1, 7, 4, 9, 6]])
where方法满足条件值用指定值进行代替
result = np.where(a3>=5,1,0)
result
>>array([[0, 0, 1, 1, 1],
[0, 0, 0, 0, 0],
[0, 1, 0, 1, 1]])
numpy数组的叠加:
垂直叠加:vstack方法
#垂直叠加 axis = 0
a1 = np.random.randint(0,5,size=(3,5))
a2 = np.random.randint(0,5,size=(4,5))
print(a1)
print('-'*30)
print(a2)
print('-'*30)
vstack1 = np.vstack([a1,a2])
print(vstack1)
>>[[0 1 0 2 0]
[4 0 4 1 1]
[3 0 3 2 1]]
------------------------------
[[2 1 4 2 3]
[2 2 2 4 3]
[2 3 3 2 3]
[1 1 3 4 4]]
------------------------------
[[0 1 0 2 0]
[4 0 4 1 1]
[3 0 3 2 1]
[2 1 4 2 3]
[2 2 2 4 3]
[2 3 3 2 3]
[1 1 3 4 4]]
水平叠加:hstack方法
#水平叠加 axis = 1
a3 = np.random.randint(0,5,size=(3,1))
a4 = np.random.randint(0,5,size=(3,5))
print(a3)
print('-'*30)
print(a4)
hstack1 = np.hstack([a3,a4])
print('-'*30)
print(hstack1)
print(hstack1.shape)
concatenate方法也可以进行数组叠加,设置 axis 参数选择水平叠加还是垂直叠加
numpy数组的切割:
垂直切割:vsplit方法
水平切割:hsplit方法
#垂直切割
hs1 = np.hsplit(hstack2,(1,3))
print(hs1)
print('-'*30)
#水平切割
vs1 = np.vsplit(hstack2,2)
print(vs1)
>>[array([[1],
[4]]), array([[0, 1],
[4, 4]]), array([[0],
[4]])]
------------------------------
[array([[1, 0, 1, 0]]), array([[4, 4, 4, 4]])]
还有split方法,指定axis参数,与数组叠加的concatenate方法类似