リストのインデックスを取得する際にエラーが発生しました。'ValueError: shape mismatch: Objects cannot be broadcast to a single shape'.
最近、コードを変更しているときに落とし穴があり、タイトルのようなエラーが報告されました。
"ValueError。
形状
mismatch: オブジェクトを1つのshapeにブロードキャストすることはできません".
エラーを報告するスニペットはかなり長く、元のスニペットでエラーを報告する部分は、2つのデータ型(
numpy
)を新しいリストに入れ、後でリスト内の2つのデータ型のインデックス値を使う必要があり、それを直接取得しようとするとエラーが発生するので、その問題を解決する簡単なスニペットを書いただけです。
import numpy as np
a = [0, 1, 2]
a = np.array(a)
b = [0, 2, 3]
c = [a, b]
for i in c:
print(c.index(i))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
実行すると、エラー "ValueError: shape mismatch: objects cannot be broadcast to a single shape" が報告されます。Baiduにも同様のエラーメッセージがありましたが、私が遭遇したものとは異なり、データの次元の不一致によるものがほとんどでした。
実際、コード・スニペットから、aとbはリストとnumpy形式の配列という2つの異なるタイプであることがわかります。もちろん、リストは異なるデータ型の要素を同時に格納することができますが、同じリストで異なる型の要素のインデックスを取得することも同様に可能であるという考えで自分を混乱させてしまいました。実際はそうではなく、私が示したスニペットのように、リスト内のインデックスを取得する際に異なるデータ型は間違うことになります。
というスニペットに修正すると。
import numpy as np
a = [0, 1, 2]
a = np.array(a).tolist()
b = [0, 2, 3]
c = [a, b]
for i in c:
print(c.index(i))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
つまり、aのデータ型をnumpy.arrayからlistに変更してデータ型を統一し、その時点で問題が解決し、出力が得られます。
0
1
リストで異なるデータ型のインデックスを付けるとなぜエラーになるのか、具体的に理解できていませんが、大御所の方からの訂正を歓迎します。
関連
-
[解決済み】Pythonのsocket.errorです。[Errno 111] 接続が拒否されました。
-
[解決済み】1行以上のJSONを含むファイルをPandasに読み込む
-
[解決済み] git リポジトリの .pyc ファイルを無視する。
-
[解決済み] .one()と.scalar()の違いは何ですか?
-
[解決済み] Tensorflowの平均二乗誤差損失関数
-
[解決済み] Plotly Dash ドロップダウンメニュー python
-
[解決済み] Pythonで空の文字列リテラルを初期化するためにstr()を使用することの長所と短所
-
[解決済み] sklearnのPLSRegressionです。"ValueError:配列にinfやNaNを含んではいけない"
-
pandasのdrop()で軸の値を簡単に記憶する方法
-
pythonがエラーを報告します。TypeError: スライスのインデックスは整数かNoneであるか、__index__メソッドを持っていなければなりません。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】サポートされていない操作 :not writeable python
-
[解決済み】Pythonで2D辞書を作成する
-
[解決済み】Pythonの文字列をコピーするにはどうすればいいですか?
-
Pythonの文字列の詳細
-
[解決済み] Python json.loads で ValueError が表示されます。余分なデータ
-
[解決済み] ビジュアルインデントのため、継続行がアンダーインデントになっています」エラーが発生する
-
[解決済み] ペアリストでペアの各要素にアクセスするには?
-
[解決済み] Python/Kivy : kivyにカレンダーを追加する。
-
[解決済み] torch.clampの列依存境界線
-
Pythonのpipによるインストールエラーを解決する。(画像付き) EnvironmentErrorのため、パッケージをインストールできませんでした。HTTPSConnectionPool