実現したいこと
- 特定の.npyファイルの配列の形状を変更させたい
前提
pythontでデータを機械学習にかけて識別率を判定するシステムを動作させようとしています。機械学習の前処理の段階でnpyファイルを渡すのですが、npyファイルの形状が異なっているためかエラーが発生しています。
そこでnpyファイルの配列形状を直そうと インスタンス.shape = (303213, 52, 4) で実行したところ該当エラーが発生しました。
発生している問題・エラーメッセージ
File "C:\Users\---.----\Downloads\-----Ⅰ\1106test\20230922 izumi_measurements\shape.py", line 11, in <module> p525.shape = (303213, 52, 4) ValueError: cannot reshape array of size 1 into shape (303213,52,4)
該当のソースコード
python
1import numpy as np 2p524= np.load("C:/Users/---.---/Downloads/----Ⅰ/1106test/20230922 izumi_measurements/izu_01-59_20230922-120000.p524L.npy",) 3print(p524.shape) 4 5p525= np.load("C:/Users/---.---/Downloads/----Ⅰ/1106test/20230922 izumi_measurements/izumi-1313-16.p524L.npy",allow_pickle=True) 6print(p525.shape) 7 8p525.shape = (303213, 52, 4) 9print(p525.shape) 10 11# print(p524.ndim) 12# print(p525.ndim)
試したこと
np.reshape(p525,(303213, 52, 4))
np.reshape((303213, 52, -1))での変形。
補足情報(FW/ツールのバージョンなど)
(spyder)Anaconda3 python3.7
> ValueError: cannot reshape array of size 1 into shape (303213,52,4)
と表示されていますので、p525 の shape は (1,) です。なので、そのままでは reshape できません。
そうではなく、(303213, 52, 4) に拡張して、p525[0] 以外の要素を 0 で埋めるなら以下の様にします。
>>> p525 = np.array([1])
>>> p525.shape
(1,)
>>> p525.resize((303213, 52, 4))
>>> p525.shape
(303213, 52, 4)
目的のデータを拡張することが必要なこと理解しました。
ご教示いただきありがとうございます。
回答1件
あなたの回答
tips
プレビュー