numpy数组的python对象

时间:2011-05-26 16:24:11

标签: python arrays object numpy

从什么时候开始numpy允许你定义一个python对象数组? Objects array with numpy

这些数组和python列表之间有什么根本区别吗?

这些数组之间有什么区别,比如说python元组?

我想在python对象数组上使用几个方便的numpy函数,即掩码和元素操作,我想在我的分析中使用它们,但我担心使用一个功能我找不到任何地方的文档。这个'object'数据类型有没有任何文档?

是否添加了此功能以准备将numpy合并到标准库中?

1 个答案:

答案 0 :(得分:8)

“基本”差异在于Numpy array是固定大小的,而Python listdynamic array

>>> class Foo:
...  pass
... 
>>> x = numpy.array([Foo(), Foo()])
>>> x.append(Foo())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'append'

(您可以使用numpy.concatenate来解决这个问题,但Numpy数组仍然不是list的替代品。)

object的数组完全正常documented,但请注意,您有时必须通过dtype=object

>>> numpy.array(['hello', 'world!'])
array(['hello', 'world!'], 
      dtype='|S6')
>>> numpy.array(['hello', 'world!'], dtype=object)
array(['hello', 'world!'], dtype=object)