Supposons que je fais deux recarrays avec le même DTYPE et empilez:empilage recarrays numpy sans perdre leur 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))
Bien que a
et b
sont recarrays, c
n'est pas:
>>> 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])
je peux évidemment le transformer en un recarray encore, comme montré avec d
ci-dessus, mais c'est gênant. Y a-t-il une raison pour laquelle empiler deux recarrays ne produit pas un autre recarray?
Ils ne conservent pas la mémoire non plus. –