python - 通过Python将csv文件转换为numpy数组

标签 python list csv numpy dictionary

我有一个以下格式的 csv 文件,我正在尝试对其进行标准化。这些数字表示关联字符串的计数。该文件包含近 100K 条目。

159028,CASSVDGSYEQYFGPG
86832,CASSLQLYFGEG
74720,CASSQDQDTQYFGPG
71701,CASSRVGSDYTFGSG
69360,CARNVTPPKSYAVFFGKG
52458,CAAEQFFGPG
51406,CASSSGDQDTQYFGPG
50305,CASQLYFGEG
38745,CAYFGPG
32565,CASSPDWGENTLYFGAG

我尝试使用以下内容创建字典

import csv
input = csv.DictReader(open("data.csv"))
for row in input:
    print(row)

结果

{'159028': '86832', 'CASSVDGSYEQYFGPG': 'CASSLQLYFGEG'}
{'159028': '74720', 'CASSVDGSYEQYFGPG': 'CASSQDQDTQYFGPG'}
{'159028': '71701', 'CASSVDGSYEQYFGPG': 'CASSRVGSDYTFGSG'}
{'159028': '69360', 'CASSVDGSYEQYFGPG': 'CARNVTPPKSYAVFFGKG'}
{'159028': '52458', 'CASSVDGSYEQYFGPG': 'CAAEQFFGPG'}
{'159028': '51406', 'CASSVDGSYEQYFGPG': 'CASSSGDQDTQYFGPG'}
{'159028': '50305', 'CASSVDGSYEQYFGPG': 'CASQLYFGEG'}
{'159028': '38745', 'CASSVDGSYEQYFGPG': 'CAYFGPG'}
{'159028': '32565', 'CASSVDGSYEQYFGPG': 'CASSPDWGENTLYFGAG'}
...

而不是

        {'CASSVDGSYEQYFGPG': 159028}        
        {'CASSLQLYFGEG': '86832'}
        {'CASSQDQDTQYFGPG': '74720'}
        {'CASSRVGSDYTFGSG': '71701'}
        {'CARNVTPPKSYAVFFGKG': '69360'}
        {'CAAEQFFGPG': '52458'}
        {'CASSSGDQDTQYFGPG': '51406'}
        {'CASQLYFGEG': '50305'}
        {'CAYFGPG': '38745'}
        {'CASSPDWGENTLYFGAG': '32565'}
        ...

我还尝试将 csv 文件转换为 numpy 数组,但得到以下结果:

>>>from numpy import genfromtxt
>>>data = genfromtxt('data.csv', delimiter=',')
>>>data
array([[  1.59028000e+05,              nan],
       [  8.68320000e+04,              nan],
       [  7.47200000e+04,              nan],
       ...,
       [  1.00000000e+00,              nan],
       [  1.00000000e+00,              nan],
       [  1.00000000e+00,              nan]])

可能还有其他方法可以通过 Python 对该数据进行标准化和其他数据处理。

最佳答案

使用 Numpy loadtxt 导入,如果需要将其作为字典,则使用字典理解。

import numpy as np

arr = np.loadtxt('data.csv', dtype=str, delimiter=",")

b = dict([(y, x) for (x, y) in arr])

关于python - 通过Python将csv文件转换为numpy数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39377229/

相关文章:

python - 在 Numpy 中编写滑动中位数的有效方法是什么?

python - 为什么 scipy.special.hankel1(0, 10**10) 返回 `nan` ?

python - 是否可以在带有 Windows 的模块中使用多处理?

r - 如何从R中的字符串列表中删除元素

apache - 如何将 HTTP 请求默认为服务器名后跟 JMeter 中的路径

mysql - mysql能否将csv或其他txt文件导入一列?

python - 如何根据概率选择随机索引?

c# - 通过 id 获取列表项

python - 使用条件从列表填充字典

python - 如何将具有相同文件名的 csv 导入数据框,应用一些程序,然后合并?