我有一个看起来如下的numpy数组:
np.array([
[[23, 12, 4, 103, 87], [0.6]],
[[32, 18, 3, 120, 70], [0.6]],
[[43, 12, 8, 109, 89], [0.4]],
[[20, 13, 7, 111, 77], [0.8]]
])
我想转换这个数组,其中最后一列成为它自己的数组,这样它将如下所示:
ID c1 c2 c3 c4
12 m n 5 1/2/2015
5 c x 4 2/3/2015
45 g t 47 4/23/2015
45 j t 3 1/1/2016
61 t y 12 7/3/2015
3 r n 18 3/3/2015
最好的方法是什么?我是相对较新的Python并尝试了一些循环,但无济于事。谢谢!
答案 0 :(得分:1)
numpy
要求其数组中的尺寸一致;这会产生两种不同的尺寸。您可以使用两个单独的变量(即并行数组):
X = data[:, :-1]
y = data[:, -1]
X = np.array([
[23, 12, 4, 103, 87],
[32, 18, 3, 120, 70],
[43, 12, 8, 109, 89],
[20, 13, 7, 111, 77],
])
y = np.array([
0.6, 0.6, 0.4, 0.8
])
或者您可以存储对的列表:
my_list = [(row[:-1], [row[-1]]) for row in data]
my_list = [
([23, 12, 4, 103, 87], [0.6]),
([32, 18, 3, 120, 70], [0.6]),
([43, 12, 8, 109, 89], [0.4]),
([20, 13, 7, 111, 77], [0.8])
]
最佳策略取决于您的使用案例。