为什么这个程序
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)=1c=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 次 |
| 最近记录: |