将字符串列表转换为逗号分隔的2D NumPy

时间:2018-10-11 10:13:49

标签: python python-3.x

我有一个类似以下的数据集:

0000000000000001,0
0000000000000010,0
0000000000000011,1
0000000000000100,1
0000000000000101,1
0000000000000110,0
0000000000000111,1
0000000000001000,0
0000000000001001,0
.
.
.

我想将每一行的第一列转换成逗号分隔,如下所示:

0000000000000001,00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0

以下代码有一个小问题:full_data不是整数的2D numpy,而是字符串的1D。我不确定该如何解决。任何提示表示赞赏。

data = []
my_data = np.genfromtxt('file.csv', delimiter=',',  dtype='str')[:,0]
for i in my_data:
    x= np.asarray(i)
    data.append(x.tolist())

full_data = np.asarray(data)

谢谢

1 个答案:

答案 0 :(得分:2)

这是一种方法。

演示:

import numpy as np

data = []
my_data = np.genfromtxt(filename, delimiter=',',  dtype='str')

data = [list(i) + [j] for i, j in my_data]
print(data)

输出:

[
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0'], 
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0'], 
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '1', '1'], 
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '1'], 
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '1', '1'], 
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0'], 
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '1', '1', '1'], 
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0'], 
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '1', '0']
]