gpt4 book ai didi

python - 将一长串 0's and 1' s 的序列转换为 numpy 数组或 pandas 数据帧

转载 作者:行者123 更新时间:2023-11-28 22:16:19 25 4
gpt4 key购买 nike

我有一个很长的序列列表(假设每个长度为 16),由 0 和 1 组成。例如

s = ['0100100000010111', '1100100010010101', '1100100000010000', '0111100011110111', '1111100011010111']

现在我想将每一位都视为一个特征,因此我需要将其转换为 numpy 数组或 pandas 数据帧。为此,我需要用逗号分隔序列中存在的所有位,这对于大数据集来说是不可能的。

所以我尝试的是生成字符串中的所有位置:

slices = []
for j in range(len(s[0])):
slices.append((j,j+1))

print(slices)
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9), (9, 10), (10, 11), (11, 12), (12, 13), (13, 14), (14, 15), (15, 16)]


new = []
for i in range(len(s)):
seq = s[i]
for j in range(len(s[i])):
## I have tried both of these LOC but couldn't figure out
## how it could be done
new.append([s[slice(*slc)] for slc in slices])
new.append(s[j:j+1])
print(new)

预期的 o/p:

new = [[0,1,0,0,1,0,0,0,0,0,0,1,0,1,1,1], [1,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1], [1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0], [0,1,1,1,1,0,0,0,1,1,1,1,0,1,1,1], [1,1,1,1,1,0,0,0,1,1,0,1,0,1,1,1]]

提前致谢!

最佳答案

使用 np.array 构造函数和列表理解:

np.array([list(row) for row in s], dtype=int)

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

关于python - 将一长串 0's and 1' s 的序列转换为 numpy 数组或 pandas 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52266352/

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