将字符串列表转换为逗号分隔的二维NumPy数组

3

我有一个如下的数据集:

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

我希望将每行的第一列转换为逗号分隔,类似于这样:0000000000000001,0 转换为 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
以下代码存在一个小问题:full_data 不是由整数组成的二维numpy数组,而是由字符串组成的一维数组。我不确定如何解决这个问题。欢迎提供任何提示。
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)

谢谢


只需将数组中的第一个条目拆分,然后附加第二个条目。 - ninesalt
1个回答

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']
]

非常感谢。这很棒。我们还可以使用 np.asarray(data).astype(np.int) 将其转换为整数列表,这正是我想要的。再次感谢。 - Ethan C.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接