[解決済み] TypeError: 長さ1の配列のみがPythonのスカラーに変換され、プロットが表示される
2022-03-03 02:50:51
質問
このようなPythonのコードを持っています。
import numpy as np
import matplotlib.pyplot as plt
def f(x):
return np.int(x)
x = np.arange(1, 15.1, 0.1)
plt.plot(x, f(x))
plt.show()
といったエラー。
TypeError: only length-1 arrays can be converted to Python scalars
どうすれば直るのでしょうか?
どのように解決するのですか?
関数が単一の値を期待し、代わりに配列を渡した場合、エラー "長さ1の配列のみがPythonのスカラーに変換可能" が発生します。
のコールサインを見てみると
np.int
配列ではなく、1つの値を受け取っていることがわかります。一般に、単一の要素を受け取る関数を配列の各要素に適用したい場合は、次のようにします。
np.vectorize
:
import numpy as np
import matplotlib.pyplot as plt
def f(x):
return np.int(x)
f2 = np.vectorize(f)
x = np.arange(1, 15.1, 0.1)
plt.plot(x, f2(x))
plt.show()
f(x)の定義を省略して、vectorize関数にnp.intを渡すだけでいいのです。
f2 = np.vectorize(np.int)
.
なお
np.vectorize
は単なる便利な関数で、基本的にはforループです。これは大きな配列に対しては非効率的でしょう。可能であればいつでも、本当にベクトル化された関数やメソッド (
astype(int)
として
FFTの提案
).
関連
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み] 億の相対的輸入
-
[解決済み】2つの1次元NumPy配列の連結
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
pythonを使ったオフィス自動化コード例
-
Python カメの描画コマンドとその例
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
Python jiabaライブラリの使用方法について説明
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
PythonによるExcelファイルの一括操作の説明
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない