在Python的numpy包中,我不太理解当一个ndarray的第二个维度为空时的情况。以下是一个例子:
In[1]: d2 = np.random.rand(10)
In[2]: d2.shape = (-1, 1)
In[3]: print d2.shape
In[4]: print(d2)
In[5]: print d2[::2, 0].shape
In[6]: print d2[::2, 0]
Out[3]:(10, 1)
Out[4]:
[[ 0.12362278]
[ 0.26365227]
[ 0.33939172]
[ 0.91501369]
[ 0.97008342]
[ 0.95294087]
[ 0.38906367]
[ 0.1012371 ]
[ 0.67842086]
[ 0.23711077]]
Out[5]: (5,)
Out[6]: [ 0.12362278 0.33939172 0.97008342 0.38906367 0.67842086]
我理解d2是一个10行1列的ndarray。Out[6]很明显是一个1行5列的数组,怎么可能维度是(5,)呢?空的第二个维度代表什么意思?
(5,)
是 Python 中表示只有一个元素的元组的方式,因为(5)
可能被解释为仅仅是数字5。 - jojonas