import numpy as np
a = np.zeros((5,2,3,4), dtype=np.int16)
print a.ndim
b = np.zeros((2,3,4), dtype=np.int16)
print b.ndim
Run Code Online (Sandbox Code Playgroud)
以上是我的代码.输出是:
4
3
Run Code Online (Sandbox Code Playgroud)
我已经从[这里]检查了页面(http://wiki.scipy.org/Tentative_NumPy_Tutorial#head-c5f4ceae0ab4b1313de41aba9104d0d7648e35cc)
我期望a.dim = 2或3,但它是4.为什么?
你能给我一些提示吗?谢谢
你赋予的元组zeros和其他类似的函数给出了数组的"形状"(并且可用于任何数组a.shape).维度数是该形状中的条目数.
如果你打印len(a.shape)而且len(b.shape)你会期望得到的结果.该ndim总是等于这个(因为这是它是如何定义的).
您提供的链接显示相同的行为,除了该reshape方法采用任意数量的位置参数而不是元组.但是在教程的例子中:
>>> a = arange(15).reshape(3, 5)
>>> a
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
>>> a.shape
(3, 5)
>>> a.ndim
2
Run Code Online (Sandbox Code Playgroud)
给出的参数reshape数量和返回的元组中元素的数量a.shape是2.如果是这样的话:
>>> a = np.arange(30).reshape(3, 5, 2)
>>> a.ndim
3
Run Code Online (Sandbox Code Playgroud)
然后我们看到相同的行为:这ndim是我们给numpy的形状条目数.
| 归档时间: |
|
| 查看次数: |
2981 次 |
| 最近记录: |