首页 > 解决方案 > 字符串列表到整数数组

问题描述

从字符串列表中,如下所示:

example_list = ['010','101']

我需要得到一个整数数组,其中每一行是每个字符串,是一列中的每个字符,如下所示:

example_array = np.array([[0,1,0],[1,0,1]])

我已尝试使用此代码,但它不起作用:

example_array = np.empty([2,3],dtype=int)    
i = 0 ; j = 0

for string in example_list:
    for bit in string:
        example_array[i,j] = int(bit)
        j+=1
    i+=1

谁能帮我?我正在使用 Python 3.6。

预先感谢您的帮助!

标签: pythonarrayspython-3.xnumpy

解决方案


如果所有字符串的长度相同(这对于构建连续数组至关重要),则用于view有效地分隔字符。

r = np.array(example_list)
r = r.view('<U1').reshape(*r.shape, -1).astype(int)

print(r)
array([[0, 1, 0],
       [1, 0, 1]])

你也可以走列表理解路线。

r = np.array([[*map(int, list(l))] for l in example_list])

print(r)
array([[0, 1, 0],
       [1, 0, 1]])

推荐阅读