[解決済み] NumPyで空の配列/行列を作成する方法は?
2022-03-23 03:49:43
質問
配列や行列を、通常のリストと同じように使う方法がわかりません。空の配列(または行列)を作成し、そこに一度に1列(または1行)を追加したいのですが、どうすればよいのでしょうか?
今のところ、このような方法しか見当たりません。
mat = None
for col in columns:
if mat is None:
mat = col
else:
mat = hstack((mat, col))
一方、リストだったら、こんな風にします。
list = []
for item in data:
list.append(item)
にそのような記法を使う方法はあるのでしょうか? ナムパイ 配列や行列を作成できますか?
解き方は?
NumPyを効率的に使用するためのメンタルモデルが間違っているのです。NumPyの配列は、連続したメモリブロックに格納されています。既存の配列に行や列を追加したい場合、配列全体を新しいメモリブロックにコピーする必要があり、新しい要素を格納するためのギャップが生じます。これは、配列を構築するために繰り返し行われる場合、非常に非効率的です。
行を追加する場合は、最終的なデータセットと同じ大きさの配列を作成し、そこに行ごとにデータを割り当てるのが最善の方法です。
>>> import numpy
>>> a = numpy.zeros(shape=(5,2))
>>> a
array([[ 0., 0.],
[ 0., 0.],
[ 0., 0.],
[ 0., 0.],
[ 0., 0.]])
>>> a[0] = [1,2]
>>> a[1] = [2,3]
>>> a
array([[ 1., 2.],
[ 2., 3.],
[ 0., 0.],
[ 0., 0.],
[ 0., 0.]])
関連
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaScriptで配列を空にするにはどうしたらいいですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピロウズ画像色処理の具体的な活用方法
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?
-
[解決済み】空のnumpy配列に新しい行を追加する方法