前提
np.arangeで生成した配列がコンマ区切りが無く、コンマ付きの出力にしたいです。
該当のソースコード
python
1model_logU = np.arange(-4, -0.9, 0.1) 2print(len(model_logU)) 3print(model_logU) 4print(np.shape(model_logU)) 5print(type(model_logU)) 6 7i = np.where(model_logU == -2.7)[0] 8print(i)
と書くと出力は
31 [-4. -3.9 -3.8 -3.7 -3.6 -3.5 -3.4 -3.3 -3.2 -3.1 -3. -2.9 -2.8 -2.7 -2.6 -2.5 -2.4 -2.3 -2.2 -2.1 -2. -1.9 -1.8 -1.7 -1.6 -1.5 -1.4 -1.3 -1.2 -1.1 -1. ] (31,) <class 'numpy.ndarray'> []
となります。
配列をコンマ付きにすると、
model_logU =np.array([-4., -3.9, -3.8, -3.7, -3.6, -3.5, -3.4, -3.3, -3.2, -3.1, -3., -2.9, -2.8, -2.7,\ -2.6, -2.5, -2.4, -2.3, -2.2, -2.1, -2., -1.9, -1.8, -1.7, -1.6, -1.5, -1.4, -1.3,\ -1.2, -1.1, -1. ]) print(len(model_logU)) print(model_logU) print(np.shape(model_logU)) print(type(model_logU)) i = np.where(model_logU == -2.7)[0] print(i) print(i + 1)
出力は
31 [-4. -3.9 -3.8 -3.7 -3.6 -3.5 -3.4 -3.3 -3.2 -3.1 -3. -2.9 -2.8 -2.7 -2.6 -2.5 -2.4 -2.3 -2.2 -2.1 -2. -1.9 -1.8 -1.7 -1.6 -1.5 -1.4 -1.3 -1.2 -1.1 -1. ] (31,) <class 'numpy.ndarray'> [13] [14]
と正しく、np.whereで配列が認識されています。
解決したい疑問点
① 何故 np.arangeで生成した配列もちゃんと<class 'numpy.ndarray'>であるにも関わらず、np.whereではインデックス値が返ってこないのでしょうか?
② np.arange (またはnp.linespace)でコンマ付きの配列が返ってくるにはどうすればよいでしょうか?
補足情報(FW/ツールのバージョンなど)
python3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/29 11:07