将两个一维数组转换为二维数组
Turning two one dimensional arrays into a 2 dimensional array
我想编写一个代码,将 a, b, c
和 unix_a, unix_b, unix_c
组合成一个多维数组。 Long
会变成 1
而 Short
会变成 0
。零和一将占据第一列,第二列将只是 unix_
值,就像:[[1 1624580882]]
。我怎样才能得到我的 Expected Output
import numpy as np
a=np.array(["Short","Long","Short","Long","Short","Long"])
b=np.array(["Long","Long","Long","Long"])
c=np.array(["Short","Long","Short","Long","Short","Long"])
unix_a=np.array([1624580882,1624584458,1624589467,1624592213,1624595336,1624596349])
unix_b=np.array([1624580882,1624584458,1624595336,1624596349])
unix_c=np.array([1624580882,1624584464,1624589495,1624592238,1624595350,1624596380])
预期输出:
[[0 1624580882], [1 1624584458], [0 1624589467], [1 1624592213], [0 1624595336], [1 1624596349]]
[[1 1624580882], [1 1624584458], [1 1624595336], [1 1624596349]]
[[0 1624580882], [1 1624584464], [0 1624589495], [1 1624592238], [0 1624595350], [1 1624596380]]
如果你想要一个列表,你可以使用列表理解:
[(0 if a=="Short" else 1, b) for a,b in zip(a,unix_a)]
输出:
[(0, 1624580882),
(1, 1624584458),
(0, 1624589467),
(1, 1624592213),
(0, 1624595336),
(1, 1624596349)]
如果你想要一个二维 numpy 数组:
np.array([(a=="Long").astype(int), unix_a]).T
输出:
array([[ 0, 1624580882],
[ 1, 1624584458],
[ 0, 1624589467],
[ 1, 1624592213],
[ 0, 1624595336],
[ 1, 1624596349]])
全部转换:
out_a, out_b, out_c = [np.array([(x[0]=="Long").astype(int), x[1]]).T
for x in [(a, unix_a), (b, unix_b), (c, unix_c)]]
您可以使用 np.c_
:
np.c_[a=='Long',unix_a]
我想编写一个代码,将 a, b, c
和 unix_a, unix_b, unix_c
组合成一个多维数组。 Long
会变成 1
而 Short
会变成 0
。零和一将占据第一列,第二列将只是 unix_
值,就像:[[1 1624580882]]
。我怎样才能得到我的 Expected Output
import numpy as np
a=np.array(["Short","Long","Short","Long","Short","Long"])
b=np.array(["Long","Long","Long","Long"])
c=np.array(["Short","Long","Short","Long","Short","Long"])
unix_a=np.array([1624580882,1624584458,1624589467,1624592213,1624595336,1624596349])
unix_b=np.array([1624580882,1624584458,1624595336,1624596349])
unix_c=np.array([1624580882,1624584464,1624589495,1624592238,1624595350,1624596380])
预期输出:
[[0 1624580882], [1 1624584458], [0 1624589467], [1 1624592213], [0 1624595336], [1 1624596349]]
[[1 1624580882], [1 1624584458], [1 1624595336], [1 1624596349]]
[[0 1624580882], [1 1624584464], [0 1624589495], [1 1624592238], [0 1624595350], [1 1624596380]]
如果你想要一个列表,你可以使用列表理解:
[(0 if a=="Short" else 1, b) for a,b in zip(a,unix_a)]
输出:
[(0, 1624580882),
(1, 1624584458),
(0, 1624589467),
(1, 1624592213),
(0, 1624595336),
(1, 1624596349)]
如果你想要一个二维 numpy 数组:
np.array([(a=="Long").astype(int), unix_a]).T
输出:
array([[ 0, 1624580882],
[ 1, 1624584458],
[ 0, 1624589467],
[ 1, 1624592213],
[ 0, 1624595336],
[ 1, 1624596349]])
全部转换:
out_a, out_b, out_c = [np.array([(x[0]=="Long").astype(int), x[1]]).T
for x in [(a, unix_a), (b, unix_b), (c, unix_c)]]
您可以使用 np.c_
:
np.c_[a=='Long',unix_a]