从什么时候开始numpy允许你定义一个python对象数组? Objects array with numpy
这些数组和python列表之间有什么根本区别吗?
这些数组之间有什么区别,比如说python元组?
我想在python对象数组上使用几个方便的numpy函数,即掩码和元素操作,我想在我的分析中使用它们,但我担心使用一个功能我找不到任何地方的文档。这个'object'数据类型有没有任何文档?
是否添加了此功能以准备将numpy合并到标准库中?
答案 0 :(得分:8)
“基本”差异在于Numpy array
是固定大小的,而Python list
是dynamic 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)