05-numpy数组高级操作

import numpy as np
x=np.array([[1],[2],[3]])
y=np.array([4,5,6])
b=np.broadcast(x,y)#对y广播x
#1.
print(b.index)
print(b.__next__())#循环到下一个(1, 4)
print(b.__next__())#循环到下一个(1, 5)
print(b.__next__())#循环到下一个(1, 6)
print(b.__next__())#循环到下一个(2, 4)
print(b.__next__())#循环到下一个(2, 5)
print(b.__next__())#循环到下一个(2, 6)
print(b.__next__())#循环到下一个(3, 4)
print(b.__next__())#循环到下一个(3, 5)
print(b.__next__())#循环到下一个(3, 6)
print(b.index)
c=np.empty(b.shape)#清空
print(b,"\n",c)


#2.
print(c.shape)
c.flat=[u+v for (u,v) in b]#数组的加法
print(c)

#3.
d=np.arange(4).reshape(1,4)
print("\n\n",d)#[[0 1 2 3]]
print(np.broadcast_to(d,(4,4)))#打印4行[[0 1 2 3]]
#实现数组的复制,要求列数相等

#4.增加维度
e=np.array(([1,2],[3,4]))#二维数组
f=np.expand_dims(x,axis=0)#扩充成三维数组
g=np.expand_dims(x,axis=1)#插入位置不一样

#5.删除维度
h=np.arange(27).reshape(1,3,9)#三维
j=np.squeeze(h)#外层只有一个元素,可以删除一个维度

  

#6.拼接
a=np.array([[1,2],[3,4]])
b=np.array([[5,6],[7,8]])
print(np.concatenate((a,b)))#拼接,按列
print(np.hstack((a,b)))

print(np.concatenate((a,b),axis=1))#拼接,按行
print(np.vstack((a,b)))

print(np.stack((a,b),0))#拼成三维数组,按列
print(np.stack((a,b),1))#按行

#7.切割
a=np.arange(100)
b=np.split(a,10)#切割成是10数组
c=np.split(a,[30,60,80])#切割三刀,留下四个数组

d=np.arange(100).reshape(10,10)
e=np.hsplit(a,5)#列切割成5份
f=np.vsplit(a,5)#行切割成5份,切割时候必须整除

  

posted @ 2020-03-05 18:15  胡辣汤王子  阅读(377)  评论(0编辑  收藏  举报