因此,我編寫了一個小測試代碼來計算文件夾中所有csv文件的平均值。Numpy - ValueError:無法設置序列的數組元素
parser = argparse.ArgumentParser(description='avg data from csv to csv')
parser.add_argument('--input', required = True)
parser.add_argument('--output', required = True)
args = parser.parse_args()
# Get command arguments
input_files_path = args.input
output = args.output
avg = []
for infile in glob.glob(input_files_path+"*.csv"):
a = np.loadtxt(infile, delimiter=",")
mean = np.mean(a, axis=0)
avg.append((mean))
print infile
np.savetxt(output,(avg), fmt = "%.1f", delimiter=", ")
但現在的問題,當我試圖保存文件的名稱,以及在CSV文件是這樣的:
parser = argparse.ArgumentParser(description='avg data from csv to csv')
parser.add_argument('--input', required = True)
parser.add_argument('--output', required = True)
args = parser.parse_args()
# Get command arguments
input_files_path = args.input
output = args.output
avg = []
for infile in glob.glob(input_files_path+"*.csv"):
a = np.loadtxt(infile, delimiter=",")
mean = np.mean(a, axis=0)
avg.append((infile,(mean)))
print infile
np.savetxt(output,(avg), fmt = "%.1f", delimiter=", ")
它拋出一個錯誤:
np.savetxt(output,(avg), fmt = "%.1f", delimiter=", ")
File "/usr/lib/python2.7/dist-packages/numpy/lib/npyio.py", line 963, in savetxt
X = np.asarray(X)
File "/usr/lib/python2.7/dist-packages/numpy/core/numeric.py", line 235, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: cannot set an array element with a sequence
我似乎不明白問題是什麼。也許這是因爲我試圖將一個字符串附加到一個浮點數?我檢查fmt
在numpy ..但我沒有發現任何有趣的事情。
/usr/lib/python2.7/dist-packages/numpy/lib/npyio.py:773: UserWarning: loadtxt: Empty input file: "../robalo-31.1/op.csv"
warnings.warn('loadtxt: Empty input file: "%s"' % fname)
/usr/lib/python2.7/dist-packages/numpy/core/fromnumeric.py:2374: RuntimeWarning: invalid value encountered in double_scalars
return mean(axis, dtype, out)
我不看行平均' .append((infile,(mean)))'代碼中的任何地方。你能否澄清一下如何適合這個? – mgilson
已發佈。還有什麼我失蹤的? 編輯後添加@mgilson – pistal
感謝您的更新。我猜測它與'savetxt'中的'format'部分有關 - 基本上你會告訴numpy將所有東西都保存爲float,但是你的數據中有字符串。我可以想象,當numpy嘗試將列表轉換爲ndarray時,可能會搞亂'dtype'參數。我可以推薦您使用'np.savetxt',而不是使用'csv'模塊來保存輸出文件嗎? – mgilson