想要改变世界,就得先改变自己。 ------ 博客首页

2-5 数组形状

In [1]:
import numpy as np
tang_arrary=np.arange(10)
tang_arrary
Out[1]:
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [2]:
tang_arrary.shape#形状
Out[2]:
(10,)
In [3]:
tang_arrary.shape=2,5#指定2行5列
In [4]:
tang_arrary
Out[4]:
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])
In [5]:
tang_arrary.reshape(1,10)#改形状的方法2
Out[5]:
array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
 

大小必须不能改变

In [6]:
tang_arrary.shape=3,4
 
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-6-236d4f50caba> in <module>()
----> 1tang_arrary.shape=3,4

ValueError: cannot reshape array of size 10 into shape (3,4)
In [11]:
tang_arrary=np.arange(10)
tang_arrary.shape
Out[11]:
(10,)
In [12]:
tang_arrary=tang_arrary[np.newaxis,:]#新加一个维度
tang_arrary.shape
Out[12]:
(1, 10)
In [13]:
tang_arrary=tang_arrary[:,np.newaxis]#新加一个维度
tang_arrary.shape
Out[13]:
(1, 1, 10)
In [14]:
tang_arrary=tang_arrary[:,np.newaxis,np.newaxis]#新加2个维度
tang_arrary.shape
Out[14]:
(1, 1, 1, 1, 10)
In [17]:
tang_arrary=tang_arrary.squeeze()#压缩,空轴会被去掉
tang_arrary.shape
Out[17]:
(10,)
In [18]:
tang_arrary.shape=2,5
In [23]:
tang_arrary
Out[23]:
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])
 

转置:不改变原来的变量

In [24]:
tang_arrary.T
Out[24]:
array([[0, 5],
       [1, 6],
       [2, 7],
       [3, 8],
       [4, 9]])
In [27]:
tang_arrary.transpose()
Out[27]:
array([[0, 5],
       [1, 6],
       [2, 7],
       [3, 8],
       [4, 9]])
 

数组的连接

In [29]:
a=np.array([[123,456,678],[321,344,451]])
a
Out[29]:
array([[123, 456, 678],
       [321, 344, 451]])
In [30]:
b=np.array([[133,444,412],[234,742,453]])
b
Out[30]:
array([[133, 444, 412],
       [234, 742, 453]])
 

拼接

In [32]:
c=np.concatenate((a,b))#第二个括号必须是元组形式
c
Out[32]:
array([[123, 456, 678],
       [321, 344, 451],
       [133, 444, 412],
       [234, 742, 453]])
In [34]:
c=np.concatenate((a,b),axis=0)#按照列拼接
c
Out[34]:
array([[123, 456, 678],
       [321, 344, 451],
       [133, 444, 412],
       [234, 742, 453]])
In [35]:
c=np.concatenate((a,b),axis=1)#按照行拼接
c
Out[35]:
array([[123, 456, 678, 133, 444, 412],
       [321, 344, 451, 234, 742, 453]])
In [36]:
c.shape
Out[36]:
(2, 6)
In [37]:
np.vstack((a,b))#默认轴=0
Out[37]:
array([[123, 456, 678],
       [321, 344, 451],
       [133, 444, 412],
       [234, 742, 453]])
In [38]:
np.hstack((a,b))#默认轴=1
Out[38]:
array([[123, 456, 678, 133, 444, 412],
       [321, 344, 451, 234, 742, 453]])
In [39]:
a.flatten()#把数值拉平,不改变原始数组
Out[39]:
array([123, 456, 678, 321, 344, 451])
In [40]:
a
Out[40]:
array([[123, 456, 678],
       [321, 344, 451]])
In [41]:
a.ravel()#把数值拉平,不改变原始数组
Out[41]:
array([123, 456, 678, 321, 344, 451])
posted @ 2019-10-08 16:43  karina512  阅读(249)  评论(0编辑  收藏  举报