gpt4 book ai didi

python - 如何加载 csv 文件并将其内容存储到 python 中的 (numpy) 数组中?

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:41 24 4
gpt4 key购买 nike

给定以下两个仅包含字符串的 csv 文件,如何将它们加载到 (numpy) 数组中?

**1.txt**
A,B,D
E,G,A

**2.txt**
A,B,D
E,G,A

**data**
1,A,B,D
1,E,G,A
2,A,B,D
2,E,G,A

最佳答案

您可以使用 numpy.loadtxt 加载它们:

>>> import numpy as np
>>> data1 = np.loadtxt("1.txt", dtype=np.object, delimiter=",")
>>> data2 = np.loadtxt("2.txt", dtype=np.object, delimiter=",")
>>> print data1
[['A' 'B' 'D']
['E' 'G' 'A']]

如果你想堆叠两个数组使用numpy.vstack:

>>> np.vstack( (data1, data2) )
[['A' 'B' 'D']
['E' 'G' 'A']
['A' 'B' 'D']
['E' 'G' 'A']]

如果你想添加源:

>>> first_col = np.vstack( (np.array([[1] * data1.shape[0]]).T, np.array([[2] * data2.shape[0]]).T) )
>>> stack = np.vstack( (data1, data2) )
>>> data = np.hstack( (first_col, stack) )
>>> print data
[[1 'A' 'B' 'D']
[1 'E' 'G' 'A']
[2 'A' 'B' 'D']
[2 'E' 'G' 'A']]

如果要保存为保存格式:

>>> np.savetxt('data.txt', data, fmt='%s', delimiter=",")

这将生成data.txt:

1,A,B,D
1,E,G,A
2,A,B,D
2,E,G,A

更新:处理无限数量文件的函数(我假设文件被命名为带有 .txt 扩展名的数字,与您在问题中指定的方式相同:1.txt、2.txt , 3.txt... n.txt):

import numpy as np

def get_from_csv(fname):
data = np.loadtxt(fname, dtype=np.object, delimiter=",")
col = np.array([[ int(fname.rstrip(".txt")) ] * data.shape[0]]).T
return np.hstack( (col, data) )

files = ["1.txt", "2.txt", "3.txt"]

for f in files:
try:
data = np.vstack( (data, get_from_csv(f)) )
except:
data = get_from_csv(f)
print data

输出:

[[1 'A' 'B' 'D']
[1 'E' 'G' 'A']
[2 'A' 'B' 'D']
[2 'E' 'G' 'A']
[3 'A' 'B' 'D']
[3 'E' 'G' 'A']]

关于python - 如何加载 csv 文件并将其内容存储到 python 中的 (numpy) 数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18977884/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com