w@TOC
数组的组合
a=
array([[1, 1],
[2, 2]])
b=
array([[ 3, 3],
[ 4, 4]])
1.水平组合
np.hstack((a,b))
[[1 1 3 3]
[2 2 4 4]]
np.concatenate((a,b),axis=1)
[[1 1 3 3]
[2 2 4 4]]
2.垂直组合
np.vstack((a,b))
[[1 1]
[2 2]
[3 3]
[4 4]]
np.concatenate((a,b),axis=0)
[[1 1]
[2 2]
[3 3]
[4 4]]
3.深度组合:沿着纵轴方向组合
np.dstack((a,b))
[[[1 3]
[1 3]]
[[2 4]
[2 4]]]
4.列组合column_stack()
一维数组:按列方向组合
二维数组:同hstack一样
5.行组合row_stack()
以为数组:按行方向组合
二维数组:和vstack一样
比较
a==b
[[ False, False]
[False, False]]
数组的切片
1.水平切片(以水平轴为准切片)
np.hsplit(a,3)
相当于对第二维度的分割,第二个参数时分成几份
split(a,3,axis=1)
2.垂直切片
np.vsplit(a,3)
同理
split(a,3,axis=0)
3.深度切片
np.dsplit(d,3)
数组的索引
找最大值得index
找每行最大
np.max(a,axis=1) #按行取最大值(无论行列求最值,取出来都是(X,)的数组)
np.where(a == np.reshape(np.max(a, axis=1),[-1,1]))#要对应找列最值得index要先把最值reshape成列形式
找每列最大
np.max(a,axis=0)#按列取最大值
np.where(a == np.max(a, axis=0))#where默认的是按列找对应
PS:np.where()的原理:
-
np.where(condition, x, y)
满足条件(condition),输出x,不满足输出y。 -
np.where(condition)
只有条件 (condition),没有x和y,则输出满足条件 (即非0) 元素的坐标 (等价于numpy.nonzero)。这里的坐标以tuple的形式给出,通常原数组有多少维,输出的tuple中就包含几个数组,分别对应符合条件元素的各维坐标。
数组的属性
a.shape
#数组维度
a.dtype
#元素类型
a.size
#数组元素个数
a.itemsize
#元素占用字节数
a.nbytes
#整个数组占用存储空间=itemsize*size
a.T
#转置=transpose
转数据类型
np.float32(
a.astype(int)