将字符串数组转换为二维 numpy 数组
Convert string array into 2D numpy array
我遇到了一个奇怪的问题。
我有两个东西,m 和 mhat:
m
[[1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0]
[1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0
0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 0]]
Mhat
['1' '1' '0' '1' '1' '1' '1' '1' '1' '1' '1' '0' '0' '1' '0' '0' '1' '0'
'1' '0' '1' '0' '1' '0' '1' '0' '1' '1' '0' '1' '0' '1' '0' '0' '0' '0'
'1' '0' '1' '1' '0' '1' '0' '1' '0' '1' '0' '1' '0' '0' '1' '0' '0' '0'
'1' '0' '0' '1' '0' '1' '1' '1' '1' '0' '0' '1' '0' '1' '1' '1' '1' '0'
'0' '0' '0' '1' '0' '1' '0' '0' '1' '1' '1' '1' '1' '1' '0' '1' '1' '1'
'0' '0' '0' '0' '0' '1' '0' '1' '0' '1' '0' '0' '0' '0']
m 是一个带有 n 行的整数的 numpy 数组,而 mhat 是一个一维的 numpy 数组,充满了字符串。
正如您所见,在 mhat 中,元素与 m 中的相同,但具有交替索引。
因此,mhat[0] 是第一行的第一个元素,mhat[1] 是第二行的第一个元素,mhat[2] 是第一行的第二个元素,依此类推。
我想转换 mhat 以便我可以比较它们。
我现在有 30 行奇怪的对话,表现很糟糕,但仍然不正确,所以我放弃了它。
有没有人对此有绝妙的想法?
这应该有效:
l1 = [[1,2,3],[4,5,6]]
l2 = [1,4,2,5,3,6]
cols = 2
newl = [[] for x in range(cols)]
for i in range(int(len(l2)/cols)):
for j in range(cols):
newl[j].append(l2[i*cols + j])
我没有将字符串转换为浮点数,但 newl
将采用 l1
的格式,然后您可以继续进行比较。
我遇到了一个奇怪的问题。 我有两个东西,m 和 mhat:
m
[[1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0]
[1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0
0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 0]]
Mhat
['1' '1' '0' '1' '1' '1' '1' '1' '1' '1' '1' '0' '0' '1' '0' '0' '1' '0'
'1' '0' '1' '0' '1' '0' '1' '0' '1' '1' '0' '1' '0' '1' '0' '0' '0' '0'
'1' '0' '1' '1' '0' '1' '0' '1' '0' '1' '0' '1' '0' '0' '1' '0' '0' '0'
'1' '0' '0' '1' '0' '1' '1' '1' '1' '0' '0' '1' '0' '1' '1' '1' '1' '0'
'0' '0' '0' '1' '0' '1' '0' '0' '1' '1' '1' '1' '1' '1' '0' '1' '1' '1'
'0' '0' '0' '0' '0' '1' '0' '1' '0' '1' '0' '0' '0' '0']
m 是一个带有 n 行的整数的 numpy 数组,而 mhat 是一个一维的 numpy 数组,充满了字符串。 正如您所见,在 mhat 中,元素与 m 中的相同,但具有交替索引。 因此,mhat[0] 是第一行的第一个元素,mhat[1] 是第二行的第一个元素,mhat[2] 是第一行的第二个元素,依此类推。
我想转换 mhat 以便我可以比较它们。 我现在有 30 行奇怪的对话,表现很糟糕,但仍然不正确,所以我放弃了它。 有没有人对此有绝妙的想法?
这应该有效:
l1 = [[1,2,3],[4,5,6]]
l2 = [1,4,2,5,3,6]
cols = 2
newl = [[] for x in range(cols)]
for i in range(int(len(l2)/cols)):
for j in range(cols):
newl[j].append(l2[i*cols + j])
我没有将字符串转换为浮点数,但 newl
将采用 l1
的格式,然后您可以继续进行比较。