2016-07-18 7 views
1

このファイルの列として複数の配列を持つテキストファイルを作成しようとしています。トリックは、各配列が異なるデータ型であることです。たとえば:複合型の複数の配列を含むテキストファイルを作成する

TypeError: Mismatch between array dtype ('|S32') and format specifier 
('%.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e 
%.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e 
%.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e 
%.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e 
%.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e 
%.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e 
%.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e 
%.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e 
%.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e 
%.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e 
%.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e %.18e 
%.18e') 

任意のアイデア:

a = np.zeros(100,dtype=np.int)+2 #integers all twos 
b = QC_String = np.array(['NA']*100) #strings all 'NA' 
c = np.ones(100,dtype=np.float)*99.9999 #floats all 99.9999 

np.savetxt('filename.txt',[a,b,c],delimiter='\t') 

はしかし、私はエラーを取得しますか?ありがとう!

答えて

2

私は、新しいテキストファイルを書き出しながら、簡単に複数のデータ型を扱うことができ、このタスクを達成するためにpandasを使用して推薦します。

import numpy as np 
import pandas as pd 

# Create an empty DataFrame 
df = pd.DataFrame() 

# Populate columns in the dataframe with numpy arrays of different data types 
df['a'] = np.zeros(100, dtype=np.int)+2 
df['b'] = np.array(['NA']*100) 
df['c'] = np.ones(100, dtype=np.float)*99.9999 

# Store the data in a new text file 
df.to_csv('./my_text_file.txt', index=False) 

オープニングアップ.txtファイルが明らかになった:

a,b,c 
2,NA,99.999 
2,NA,99.999 
2,NA,99.999 
... 
+0

これは素晴らしいですね!このパンダの方法でcsvではなくタブ区切りにする方法はありますか? – HM14

+0

はい、書き出し中に 'sep = '\ t''引数を追加するだけです:' df.to_csv(' foo.txt '、index = False、sep =' \ t ') ' – N1B4

+0

しかし、私はエラーが続いています: ValueError:値の長さがインデックスの長さと一致しません – HM14

関連する問題