如何使用numpy从2d矩阵中轻松获取这些值?

voase2hg  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(150)

我有一个二维的numpy矩阵

a = np.array(
[[ 1  2  3  4  5] 
 [ 6  7  8  9 10] 
 [11 12 13 14 15] 
 [16 17 18 19 20] 
 [21 22 23 24 25] 
 [26 27 28 29 30]])

字符串
我想从中提取这些值,只是为了学习:)

[[11,12],[16,17],[29,30]]


经过多次尝试,我最终在chatGPT给了我一个错误的答案:(. chatGPT建议这个a[[2, 3, 5], [0, 1, 1]],但得到这些值[11 17 27]
任何帮助将不胜感激谢谢

hfyxw5xn

hfyxw5xn1#

你需要在数组中添加逗号。
您可以使用numpy索引:https://numpy.org/doc/stable/user/basics.indexing.html

import numpy as np
a=np.array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10],
       [11, 12, 13, 14, 15],
       [16, 17, 18, 19, 20],
       [21, 22, 23, 24, 25],
       [26, 27, 28, 29, 30]])

个字符

print(a[[2,3],0:2])

输出

array([[11, 12],
       [16, 17]])
print(a[5:,3:])

的字符串

print(a[[5],3:])

输出

array([[29, 30]])

一切一气呵成:

a[[2,3],0:2].tolist() + a[[5],3:].tolist()


a[2:4,0:2].tolist() + a[5:,3:].tolist()

输出

[[11, 12], [16, 17], [29, 30]]

f8rj6qna

f8rj6qna2#

另一个解决方案:

a = np.arange(start=1, stop=31).reshape(6, 5)
print(np.array([a[2, 0:2], a[3, 0:2], a[5, 3:5]]))

字符串
印刷品:

[[11 12]
 [16 17]
 [29 30]]

相关问题