想我做兩個recarrays用相同的D型和堆疊起來:堆疊numpy的recarrays不失其recarrayness
>>> import numpy as np
>>> dt = [('foo', int), ('bar', float)]
>>> a = np.empty(2, dtype=dt).view(np.recarray)
>>> b = np.empty(3, dtype=dt).view(np.recarray)
>>> c = np.hstack((a,b))
雖然a
和b
是recarrays,c
是不是:
>>> c.foo
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'foo'
>>> d = c.view(np.recarray)
>>> d.foo
array([ 0, 111050731618561, 0,
7718048, 8246760947200437872])
我可以顯然將它重新變成一個recarray,如上面的d
所示,但這很不方便。爲什麼堆疊兩個recarrays不會產生另一個recarray是有原因的嗎?
他們不保留recarrayness要麼。 – 2011-05-27 18:01:45