NumPyでは、インデックスの範囲のワイルドカードとして:
を使用して配列の全セグメントを割り当てることができます。たとえば:範囲の割り当てが必要な配列タイプ
>>> (n, m) = (5,5)
>>> a = numpy.array([[0 for i in range(m)] for j in range(n)])
>>> a
array([[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]])
>>> for i in range(n):
... a[i, :] = [1 for j in range(m)]
>>> a
array([[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1]])
しかし、numpy.array
は、数値データのみを保持しています。私は任意のオブジェクトを保持することができ、NumPy配列のように扱うことができる配列型が必要です。私は何を使うべきですか?
編集:私はこの範囲割り当て構文の完全な柔軟性を望んでいます。これは、あまりにも、動作するはずです:
>>> a[:,1] = 42
>>> a
array([[ 1, 42, 1, 1, 1],
[ 1, 42, 1, 1, 1],
[ 1, 42, 1, 1, 1],
[ 1, 42, 1, 1, 1],
[ 1, 42, 1, 1, 1]])
はあなたがその特定のケースを必要とする、またはこのsufficentような単純な例ですか?その場合、組み込みリストはうまく動作しますが、カンマを省略するだけです。 – delnan
@delnanどちらもありません。より複雑な場合にもこの構文を使用したいと思います。 – clstaudt