1
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi có 3 mảng có độ dài bằng nhau [ví dụ:]:
7>>> a, b, c = np.random.randint[0, 9, 9].reshape[3, 3] >>> print[a, b, c] [4 1 4] [5 8 5] [3 0 2]
8>>> a, b, c = np.random.randint[0, 9, 9].reshape[3, 3] >>> print[a, b, c] [4 1 4] [5 8 5] [3 0 2]
9>>> a, b, c = np.random.randint[0, 9, 9].reshape[3, 3] >>> print[a, b, c] [4 1 4] [5 8 5] [3 0 2]
Tôi muốn kết hợp chúng thành một ma trận:
|a, 1, i |
|b, 2, ii |
|c, 3, iii|
Vấn đề tôi gặp phải là khi tôi sử dụng các mã như
>>> np.vstack[[a, b, c]].T
array[[[4, 5, 3],
[1, 8, 0],
[4, 5, 2]]]
0, >>> np.vstack[[a, b, c]].T
array[[[4, 5, 3],
[1, 8, 0],
[4, 5, 2]]]
1 hoặc >>> np.vstack[[a, b, c]].T
array[[[4, 5, 3],
[1, 8, 0],
[4, 5, 2]]]
2. Tôi nhận được chúng được thêm vào số lượng hoặc xếp chồng lên nhau theo kiểu mà tôi có thể làm việc cùng.
Dirtybit
16.3k4 Huy hiệu vàng30 Huy hiệu bạc54 Huy hiệu đồng4 gold badges30 silver badges54 bronze badges
Đã hỏi ngày 31 tháng 1 năm 2019 lúc 11:59Jan 31, 2019 at 11:59
5
Giả sử rằng bạn có 3 mảng numpy:
>>> a, b, c = np.random.randint[0, 9, 9].reshape[3, 3]
>>> print[a, b, c]
[4 1 4] [5 8 5] [3 0 2]
Sau đó, bạn có thể xếp chúng theo chiều dọc [nghĩa là dọc theo chiều đầu tiên], sau đó chuyển ma trận kết quả để có được thứ tự bạn cần:
>>> np.vstack[[a, b, c]].T
array[[[4, 5, 3],
[1, 8, 0],
[4, 5, 2]]]
Thay vào đó, một ví dụ dài hơn một chút là xếp theo chiều ngang, nhưng điều này đòi hỏi các mảng của bạn được tạo thành 2D bằng cách sử dụng
>>> np.vstack[[a, b, c]].T
array[[[4, 5, 3],
[1, 8, 0],
[4, 5, 2]]]
3:>>> np.hstack[[a.reshape[3, 1], b.reshape[3, 1], c.reshape[3, 1]]]
array[[[4, 5, 3],
[1, 8, 0],
[4, 5, 2]]]
Đã trả lời ngày 31 tháng 1 năm 2019 lúc 12:15Jan 31, 2019 at 12:15
Hannes Ovrénhannes OvrénHannes Ovrén
20,5K8 Huy hiệu vàng67 Huy hiệu bạc75 Huy hiệu Đồng8 gold badges67 silver badges75 bronze badges
Bạn có thể sử dụng zip []:
Bản đồ chỉ số tương tự của nhiều container để chúng có thể được sử dụng chỉ bằng cách sử dụng như một thực thể đơn lẻ.
a1 = ['a', 'b', 'c']
b1 = ['1', '2', '3']
c1 = ['i', 'ii', 'iii']
print[list[zip[a1,b1,c1]]]
OUTPUT:
[['a', '1', 'i'], ['b', '2', 'ii'], ['c', '3', 'iii']]
EDIT:
Tôi chỉ nghĩ đến việc bước về phía trước, làm thế nào về việc làm phẳng danh sách sau đó và sau đó sử dụng
>>> np.vstack[[a, b, c]].T
array[[[4, 5, 3],
[1, 8, 0],
[4, 5, 2]]]
4flattened_list = []
#flatten the list
for x in res:
for y in x:
flattened_list.append[y]
#print[flattened_list]
import numpy as np
data = np.array[flattened_list]
shape = [3, 3]
print[data.reshape[ shape ]]
OUTPUT:
[['a' '1' 'i']
['b' '2' 'ii']
['c' '3' 'iii']]
HOẶC
Đối với một lớp lót ngoài kia:
#flatten the list
for x in res:
for y in x:
flattened_list.append[y]
# print[flattened_list]
print[[flattened_list[i:i+3] for i in range[0, len[flattened_list], 3]]]
OUTPUT:
[['a', '1', 'i'], ['b', '2', 'ii'], ['c', '3', 'iii']]
HOẶC
Đối với một lớp lót ngoài kia:
>>> a, b, c = np.random.randint[0, 9, 9].reshape[3, 3]
>>> print[a, b, c]
[4 1 4] [5 8 5] [3 0 2]
0OUTPUT:
>>> a, b, c = np.random.randint[0, 9, 9].reshape[3, 3]
>>> print[a, b, c]
[4 1 4] [5 8 5] [3 0 2]
1Theo đề xuất của @norok2Jan 31, 2019 at 12:02
3
Đã trả lời ngày 31 tháng 1 năm 2019 lúc 12:02
>>> a, b, c = np.random.randint[0, 9, 9].reshape[3, 3]
>>> print[a, b, c]
[4 1 4] [5 8 5] [3 0 2]
2Điều này cung cấp cho bạn một danh sách các bộ dữ liệu, có thể không phải là những gì bạn muốn:
>>> a, b, c = np.random.randint[0, 9, 9].reshape[3, 3]
>>> print[a, b, c]
[4 1 4] [5 8 5] [3 0 2]
3Điều này cung cấp cho bạn một mảng numpy:Jan 31, 2019 at 12:06
Đã trả lời ngày 31 tháng 1 năm 2019 lúc 12:06Benoît P
Benoît pbenoît p12 silver badges31 bronze badges
3.08512 huy hiệu bạc31 huy hiệu đồng
Nếu bạn có các loại dữ liệu khác nhau trong mỗi mảng, thì sẽ có ý nghĩa khi sử dụng>>> np.vstack[[a, b, c]].T
array[[[4, 5, 3],
[1, 8, 0],
[4, 5, 2]]]
5 cho điều này:>>> a, b, c = np.random.randint[0, 9, 9].reshape[3, 3]
>>> print[a, b, c]
[4 1 4] [5 8 5] [3 0 2]
4>>> a, b, c = np.random.randint[0, 9, 9].reshape[3, 3]
>>> print[a, b, c]
[4 1 4] [5 8 5] [3 0 2]
5Bây giờ bạn có cấu trúc bạn mong muốn, với các loại dữ liệu phù hợp cho mỗi cột:
>>> a, b, c = np.random.randint[0, 9, 9].reshape[3, 3]
>>> print[a, b, c]
[4 1 4] [5 8 5] [3 0 2]
6Bạn có thể trích xuất mảng
>>> np.vstack[[a, b, c]].T
array[[[4, 5, 3],
[1, 8, 0],
[4, 5, 2]]]
6 với thuộc tính >>> np.vstack[[a, b, c]].T
array[[[4, 5, 3],
[1, 8, 0],
[4, 5, 2]]]
7:Jan 31, 2019 at 12:43
Đã trả lời ngày 31 tháng 1 năm 2019 lúc 12:43ajrwhite
ajrwhiteajrwhite1 gold badge11 silver badges24 bronze badges