1

(N,)形状、およびの配列を取りたいのですがdtype=object、すべて同じ形状の配列のshape、および で配列を作成しshape == (N,) + shapeます。誰かがこれを行うための最良の方法を知っているかどうか疑問に思っていました. これが例です。

import numpy as np
array = np.empty(4, dtype=object)
array[:] = [np.ones([3, 2])]
array = np.array(array.tolist())
print array.dtype
# float64
print array.shape
# (4, 3, 2)
4

1 に答える 1

0

内部配列 (ここでは(3,2)) の形状が既にわかっている場合は、プロセス全体を次のように単純化できます。

subshape = (3,2)
a = np.empty(tuple([N,]+list(subshape)), dtype=object)
a[:] = np.ones(subshape)

これにより、リストとの間の不要な変換を回避できます。


ここで、各要素がfloat 配列である(N,)オブジェクト配列があると仮定すると、次のことができます。asubshape

a = np.vstack(a)
a.shape = [N,] + list(subshape)

またはもっと簡単に:

a = np.array(a.tolist(), dtype=float)

ただし、.tolist変換はあまり効率的ではないかもしれません。

于 2012-10-22T09:47:54.557 に答える