为什么这个程序
import numpy as np
c = np.array([1,2])
print(c.shape)
d = np.array([[1],[2]]).transpose()
print(d.shape)
Run Code Online (Sandbox Code Playgroud)
给
(2,)
(1,2)
Run Code Online (Sandbox Code Playgroud)
作为其输出?不应该
(1,2)
(1,2)
Run Code Online (Sandbox Code Playgroud)
代替?我在python 2.7.3和python 3.2.3中都得到了这个
Pie*_* GM 16
当您调用a的.shape
属性时ndarray
,您将获得一个元素,其元素与数组的维度一样多.长度,即行数,是第一个维度(shape[0]
)
c=np.array([1,2])
.这是一个普通的1D数组,因此它的形状将是1元素元组,并且shape[0]
是元素的数量,所以c.shape = (2,)
c=np.array([[1,2]])
.这是一个2D阵列,有1行.第一行也是唯一一行[1,2]
,它给了我们两列.因此,c.shape=(1,2)
和len(c)=1
c=np.array([[1,],[2,]])
.另一个2D数组,有2行,1列:c.shape=(2,1)
和len(c)=2
.d=np.array([[1,],[2,]]).transpose()
:这个数组是相同的np.array([[1,2]])
,因此它的形状是(1,2)
.另一个有用的属性是.size
:这是所有维度中的元素数量,并且您拥有数组c
c.size = np.product(c.shape)
.
有关文档中形状的更多信息.
len(c.shape)
是数组的“深度”。
对于c
,数组只是一个列表(向量),深度为 1。
对于d
,数组是列表的列表,深度为 2。
笔记:
c.transpose()
# array([1, 2])
Run Code Online (Sandbox Code Playgroud)
事实并非如此d
,因此这种行为并不不一致。
dt = d.transpose()
# array([[1],
# [2]])
dt.shape # (2,1)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15536 次 |
最近记录: |