如何通过读取像
这样的csv文件来制作ndarray12,employed,32,happy,1
21,unemployed,31,poor,0
34,rich,45,unhapppy,0
注意:文件可能非常大
输出数组:
[[12,"employed",32,"happy",1]
[21,"unemployed",31,"poor",0]
[34,"rich",45,"unhapppy",0]]
使用np.genfromtxt(filename,delimiter = ",",dtype = None)
从csv文件读取时,它会生成元组的1-d数组,而dtype = int
使字符串成为Nan
答案 0 :(得分:4)
先使用read_csv
,然后使用DataFrame.values
转换为numpy array
:
import pandas as pd
df = pd.read_csv('file', header=None)
print(df)
0 1 2 3 4
0 12 employed 32 happy 1
1 21 unemployed 31 poor 0
2 34 rich 45 unhapppy 0
arr = df.values
print(arr)
[[12 'employed' 32 'happy' 1]
[21 'unemployed' 31 'poor' 0]
[34 'rich' 45 'unhapppy' 0]]
答案 1 :(得分:0)
您可以使用组合数据类型创建结构化数组。与列表不同的NumPy数组不能包含不同的数据类型。 NumPy数组的所有元素必须是相同的数据类型。
import numpy as np
dt = np.dtype([("iq", np.uint8),
("status", np.unicode_, 32),
("age", np.uint8),
("mood", np.unicode_, 32),
("flag", np.bool_)])
a = np.loadtxt("file.csv", dtype=dt, delimiter=",")
print(a)
print(a[1:]["status"])
print(a[["age", "mood"]])