Asked Oct 4th, 2018 8:33 a.m. 144 0 3
  • 144 0 3
+1

Thêm ma trận

Share
  • 144 0 3

Tôi có: [a b c d e f g k] tôi muốn thêm như kết quả: [[a b c d e f g k] [a b c d e f g k] [a b c d e f g k] [a b c d e f g k]]

Mong mọi người giúp đỡ.

3 ANSWERS


Answered Oct 4th, 2018 8:52 a.m.
Accepted
+5

Cách tổng quát:

[[a, b, c, d, e, f, g, k]] * 4
Share
Oct 5th, 2018 3:54 a.m.

Good answer (y)

0
| Reply
Share
Answered Oct 4th, 2018 8:48 a.m.
+2

Bạn có thể nói cụ thể hơn được ko? Chứ nếu chỉ là array bình thường có cấu trúc như kia thì khai báo như này là xong mà:

>>> a = [1, 2, 3, 4]
>>> a
[1, 2, 3, 4]

>>> b = [a, a, a, a]
>>> b
[[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]]

Nhưng mình nghĩ chắc là ko phải như mình nghĩ bên trên.

Share
Answered Oct 4th, 2018 8:56 a.m.
+1
clgt =  [a, b, c, d, e, f, g, k] 
result = [clgt] * 4

Nếu bạn muốn nó là ma trận thì có thể tham khảo cách này:

import numpy
clgt =  [a, b, c, d, e, f, g, k] 
result = numpy.array([clgt] * 4)
Share
Avatar Hoang Dinh Thoi @hoangdinhthoi
Oct 4th, 2018 9:58 a.m.

@ngao Cách của bạn cũng có thể ok. Nhưng về tốc độ thì sẽ chậm. Ở đây chỉ cần duplicate 1 ma trận nhiều lần, nên chỉ cần lặp lại như trong code của mình. Nếu có 1 ma trận 1000 phần tử, muốn lặp 1000 lần thì cách nhân với ma trận [1, ,1 ..., 1] của bạn sẽ chạy rất lâu.

+1
| Reply
Share
Avatar ngao @ngao
Oct 4th, 2018 10:06 a.m.

@hoangdinhthoi đồng ý bạn. Khởi tạo luôn một cái ma trận xong thêm từng cái row vào như thế hay hơn.

+1
| Reply
Share
Viblo
Let's register a Viblo Account to get more interesting posts.