下面介绍关于Numpy的一些基本操作
一、查看numpy的基本属性
X=numpy.arange(15).reshape(3,5)
查看维度 :X.ndim
查看形状:X.shape
查看元素个数:x.size
二、数据访问
1、一维
x[0]
x[-1]
2、二维
X[(0,3)] # 元组 第一个行 第二个列
X[1,2] # 可把括号去掉
X[0][0] # 不建议这样写 这样定义不准确
3、切片
一维
x[0:5]
x[:6]
x[5:]
x[::2] #2 为切割的步长
x[1::2]
二维
X[0:2,0:3] #切行切列
X[:2,:3]
X[:2][:3] #切出来不对 切的顺序 都是进行行操作
X[:2,::2] #先切行 列有步长进行切
X[::-1,::-1] # 矩阵反转 行列都反转
X[0,:]# 第一行所有列 变成向量 降维
X[:,0]
三、子矩阵相关
subX=X[:2,:3]
subX[0][0]=100
#上述方法中subX和X同时改变,若创建无关子矩阵,则采用下述方法
subX=X[:2,:3].copy()
subX[0][0]=200
四、reshape
x.reshape(1,10) # 维度变大
x.reshape(-1,10) #不关心多少行(-1),只关心多少列
Numpy的分割与合并操作
一、分割操作 Split
split,vsplit,hsplit
(1)split(ary, indices_or_sections, axis=0)
把一个数组从左到右按顺序切分
参数:
ary:要切分的数组
indices_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置
axis:沿着哪个维度进行切向,默认为0,横向切分
(2)upper,lower = np.vsplit(A,[1]) #垂直方向进行切割
(3)left,right = np.hsplit(A,[2]) # 水平方向切割,切成左右两个部分
二、合并操作
concatenate,vstack,hstack
注意在合并的时候,待合并元素放在列表里
np.concatenate([A,A],axis=0) #默认行衔接
np.concatenate([A,A],axis=1) #显式指定连接方式
# concatenate 只能处理相同的维度的合并
np.concatenate([A,z.reshape(1,-1)])
# vstack 拼接 比较智能
np.vstack([A,z]) # 无需变换
np.hstack([A,B]) # 里面是列表