Python len()与numpy数组上的_len_;相比

Python len()与numpy数组上的_len_;相比,python,python-2.7,numpy,Python,Python 2.7,Numpy,这是怎么回事?如何检查a是否有长度 >>> import numpy as np >>> a = np.array(3) >>> hasattr(a , '__len__') True >>> len(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: len() of unsiz

这是怎么回事?如何检查
a
是否有长度

>>> import numpy as np
>>> a = np.array(3)
>>> hasattr(a , '__len__')
True
>>> len(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: len() of unsized object
我正在使用python 2.7.3和numpy 1.8.0


谢谢。

嗯,也许我这里遗漏了什么,但是你为什么不检查一下类型呢

import numpy as np

def make_ary(item):
    if not isinstance(item, list):
        ary = np.array([item])
    else:
        ary = np.array(item)
        ary = ary.ravel()
    return ary
然后:

a = [1,2,3]
b = 3
c = [ [1] , [2] ,[3] ]


>> make_ary(a)
array([1, 2, 3])

>> make_ary(b)
array([3])

>> make_ary(c)
array([1, 2, 3])

谢谢你的回答,但是一个神秘的陌生人删除了他们的评论,解决了这个问题。我将使用
np.ravel
.Yair,标题和问题中删除的部分,因此答案似乎与问题无关。你能修一下吗?这很令人困惑。
a = [1,2,3]
b = 3
c = [ [1] , [2] ,[3] ]


>> make_ary(a)
array([1, 2, 3])

>> make_ary(b)
array([3])

>> make_ary(c)
array([1, 2, 3])