前提・実現したいこと
while文で出力した行列をすべて横に結合したいです。
こちら(dropboxへのリンク)のcsvからnumpyで読み込んだものをすべて横に結合したいです。
上記の図だと行列の数は3つになっていますが、
実際はwhile文の任意の繰り返し回数(ソースコードでいうi)だけ出力されるので、
行列の数が任意に変動出来る場合もそれらすべてを結合する処理がしたいと思っています。
下記のコードの他にnp.hstackやnp.concatenateなども試してみたのですが、
どれも上手くいきませんでした。
発生している問題・エラーメッセージ
TypeError Traceback (most recent call last) <ipython-input-18-6c96e44c1534> in <module> 18 ) 19 data = np.array(data).reshape(-1, 1) ---> 20 X = np.append(data, axis=1) 21 i = i + 1 22 print(X) <__array_function__ internals> in append(*args, **kwargs) TypeError: _append_dispatcher() missing 1 required positional argument: 'values'
該当のソースコード
Python
1import csv 2import os 3import numpy as np 4 5print("データ数を入力して下さい.") 6i = input() #数値入力 7 8if i.isdigit() and 0 <= int(i) <= 32767: #入力文字が範囲内の数値であるか確認 9 if os.path.exists(f"Desktop\data\test{i}.CSV"): #入力のファイルが存在するか確認 10 j = i 11 i = 0 12 X = [] 13 while int(i) <= int(j): 14 data= np.genfromtxt(f"Desktop\data\test{i}.CSV", #入力するファイルのパス 15 skip_header=16, #先頭16行目までを無視 16 delimiter=",", #ファイルの区切り文字 17 usecols=(3) #3列目を読み取りたい 18 ) 19 data = np.array(data).reshape(-1, 1) 20 X = np.append(data, axis=1) 21 i = i + 1 22 print(X) 23 24 else: 25 print('その入力のファイル名は存在しません.') #入力のファイルが存在しない場合 26 27else: 28 print('利用可能範囲外の入力です.') #文字もしくは範囲外の数値を入力した際に表示
補足情報(FW/ツールのバージョンなど)
windows 64bit
Anaconda Jupyter Notebook
回答2件
あなたの回答
tips
プレビュー