如果我有一個點串列,我該[x1, x2..xn, y1, y2..yn]如何[x1, y1, x2, y2..xn, yn]使用 numpy?
這就是我所做的,但不知道如何繼續
u = [x for idx, x in enumerate(l) if idx < len(l) / 2]
v = [x for idx, x in enumerate(l) if idx >= len(l) / 2]
uj5u.com熱心網友回復:
喲可以使用.reshape(2, -1),結合.Tfor transpose 并.flatten()再次將陣列解釋為 1d:
import numpy as np
# create example data: x1, ..., xn = [0, ..., 4] and y1, ..., yn = [5, ..., 9]
l = list(range(10))
# → [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
z = np.array(l).reshape(2, -1).T.flatten()
# → array([0, 5, 1, 6, 2, 7, 3, 8, 4, 9])
uj5u.com熱心網友回復:
Numpy 解決方案(使用np.column_stack()代替zip):
list_a = np.array([100.0, 200.0, -10.0])
list_b = [False, False, True]
print(np.column_stack((list_a, list_b)))
[[100. 0.]
[200. 0.]
[-10. 1.]]
選擇:
list_a = [100.0, 200.0, -10.0]
list_b = [False, False, True]
newlist = []
for val_a, val_b in zip(list_a, list_b):
newlist.append((val_a, val_b))
print(newlist)
[(100.0, False), (200.0, False), (-10.0, True)]
更多資訊:鏈接
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/430698.html
