In [954]: import array
In [955]: a = array.array('i')
In [956]: a.fromlist([1,2,3])
In [957]: a
Out[957]: array('i', [1, 2, 3])
In [958]: len(a)
Out[958]: 3
Как и список, a
имеет len
. Он не имеет ndim
:
In [959]: a.ndim
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-959-2cb81154a11f> in <module>
----> 1 a.ndim
AttributeError: 'array.array' object has no attribute 'ndim'
ndim
является свойством numpy.ndarray
. Это не относится к list
или array
. Если дан один из thosr, np.ndim
сначала преобразует его np.asarray(a)
:
In [960]: np.ndim(a)
Out[960]: 1 # always 1
In [961]: np.ndim([1,2,3])
Out[961]: 1
Хотя списки могут быть вложенными, array.array
должен содержать предопределенный тип элемента, как описано в документации. У него нет общего типа объекта, поэтому он всегда будет одномерным.