1. ホーム
  2. python

numpyの配列に項目を追加する方法

2023-12-09 03:02:53

質問

次のタスクを達成する必要があります。

からの

a = array([[1,3,4],[1,2,3]...[1,2,1]])

(各行に1要素ずつ追加)にします。

a = array([[1,3,4,x],[1,2,3,x]...[1,2,1,x]])

a[n] = array([1,3,4,x]) のようなことをやってみました。

のようなことをやってみましたが、numpyがshape mismatchを訴えました。私は a を繰り返し、各項目に要素xを追加してみたが、変更が反映されない。

どのようにしたらこれを達成できるのか、何かアイデアはありますか?

どのように解決するのですか?

既存の配列にデータを追加することは、pythonの経験のある人なら誰でもやりたいと思う自然なことです。 しかし、大きな配列に定期的にデータを追加していると、NumPyがpythonのように簡単かつ効率的にこれを行うことができないことにすぐに気がつくでしょう。 list がそうするように、NumPyがこれを簡単かつ効率的に行えないことにすぐに気づくでしょう。 すべてのquot;append"アクションは、配列のメモリを再割り当てする必要があり、短期的にメモリ要件が2倍になることに気づくはずです。 したがって、この問題に対するより一般的な解決策は、アルゴリズムの最終出力と同じ大きさの配列を割り当てるようにすることです。 そして、すべての操作をサブセット ( スライス ) に対してすべての操作を行います。 配列の生成と破棄は最小化するのが理想です。

とはいえ、避けられないことも多く、これを行う関数は

2次元配列の場合

は3次元配列(上記プラス)用です。

N-D配列の場合。