Tôi cố gắng để làm như sau nhưng với mảng NumPy:Tương đương với "zip()" trong Python sần?
x = [(0.1, 1.), (0.1, 2.), (0.1, 3.), (0.1, 4.), (0.1, 5.)]
normal_result = zip(*x)
Điều này sẽ cho một kết quả của:
normal_result = [(0.1, 0.1, 0.1, 0.1, 0.1), (1., 2., 3., 4., 5.)]
Nhưng nếu vector đầu vào là một mảng NumPy:
y = np.array(x)
numpy_result = zip(*y)
print type(numpy_result)
Nó (dự kiến) trả về a:
<type 'list'>
Vấn đề là tôi sẽ cần phải chuyển đổi kết quả trở lại thành một mảng numpy sau này.
Điều tôi muốn biết là điều gì sẽ xảy ra nếu có một chức năng gọn gàng hiệu quả để tránh những biến đổi ngược lại này?
Thêm thêm một chiều hướng đến mảng 2d. Nếu bạn muốn một cái gì đó tương tự như những gì OP muốn, bạn sẽ phải lấy phần tử đầu tiên của mảng dstacked. – benjwadams
Numpy np.stack là gần nhất để nén cho ma trận. 'mảng = (x, y); np.stack (mảng, trục = len (mảng)) '. – CMCDragonkai
Ngoài ra còn có np.column_stack, có thể là những gì OP cần. – RecencyEffect