import numpy as np
a = np.arange(1,13).reshape((3,4))print(a)# 通过切片获取的sub_a是新获得的数组,即使赋值给新币那辆,但还是原来数组的视图# 如果修改切片数组中元素的值,会影响原来的数组
sub_a = a[:2,:2]print(sub_a)
sub_a[0]=10print(sub_a)print(a)# 可以使用numpy中的copy方法实现,# 深拷贝
sub_aa = np.copy(a[:2,:2])
sub_aa =100print(sub_aa)print(a)
修改数组维度
一维到多维
多维到一维 reshape ravel flatten
import numpy as np
a = np.arange(1,25)print(a)# def reshape(self, shape, order='C'):
b = a.reshape(4,6)print(b)# 修改为四块两行三列
c = a.reshape(4,2,3)print(c)# np.reshape(数组, 维度) 六行四列
d = np.reshape(a,(6,4))print(d)# 两块三行四列
f = np.reshape(a,(2,3,4))print(f)# 多维数组转换为一维reshape ravel flatten
f = f.reshape(-1)print(f)
f = f.ravel()print(f)
f = f.flatten()print(f)
拼接
hstack vstack concatenate
一维 二维 三维的concatenate拼接操作
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[11,12,13],[14,15,16]])print(a)print(b)# hstack进行水平拼接
r = np.hstack([a, b])# r = nconp.hstack((a, b))print(r)# vstack进行竖直方向拼接# r = np.vstack([a, b])
r = np.vstack((a, b))print(r)# concatenate链接沿现有轴的数组序列,默认垂直方向拼接axis# r = np.vstack([a, b])
r = np.concatenate((a, b), axis=0)print(r)# 二维数组两个轴 axis=0 axis=1
r = np.concatenate((a, b), axis=1)print(r)# 三维数组两个轴 axis=0 axis=1 axis=2
a = np.arange(1,13).reshape(1,2,6)
b = np.arange(101,113).reshape(1,2,6)
r = np.concatenate((a, b), axis=0)print(r)
r = np.concatenate((a, b), axis=1)print(r)
r = np.concatenate((a, b), axis=2)print(r)