Python 如何读取第1列和第2列,以及从第n列到最后一列。努比
我有一个多维数组,需要分别选择第1列和第2列、第1列和第3列、第1列和第4列。然后是第二列和第三列,第二列和第四列,最后是第三列和第四列。等等。。。 为了语句的目的,我转置了数组 我的代码Python 如何读取第1列和第2列,以及从第n列到最后一列。努比,python,arrays,numpy,Python,Arrays,Numpy,我有一个多维数组,需要分别选择第1列和第2列、第1列和第3列、第1列和第4列。然后是第二列和第三列,第二列和第四列,最后是第三列和第四列。等等。。。 为了语句的目的,我转置了数组 我的代码 import pandas as pd pole= np.array([[11,12,13,14],[21,22,23,24],[31,32,33,34],[41,42,43,44]]) pole=np.transpose(pole) print(pole) 我需要 #1st and 2nd 11 21
import pandas as pd
pole= np.array([[11,12,13,14],[21,22,23,24],[31,32,33,34],[41,42,43,44]])
pole=np.transpose(pole)
print(pole)
我需要
#1st and 2nd
11 21
12 22
13 23
14 24
#1st and 3rd
11 31
12 32
13 33
14 34
#1st and 4th
11 41
12 42
13 43
14 44
#2nd and 3rd
21 31
22 32
23 33
24 34
#2nd and 4th
21 41
22 42
23 43
24 44
#3rd and 4th
31 41
32 42
33 43
34 44
您可以使用类似于
pole[:,0:2]
的东西。它将给出前两列。
对于第二列和最后一列之类的内容,您可以执行pole[:,[1,3]]
逗号前的第一个参数用于描述所需的行,第二个参数用于描述列。
:-意味着一切
0:2-表示从第0列开始到第2列(不包括在内)
或者您可以传递类似于[1,3]的列表,这意味着列位于位置1和3(索引以0开头)。使用以下非常简洁的代码:
result = np.concatenate([ np.c_[pole[:,x], pole[:,y]]
for x, y in np.c_[np.triu_indices(n=pole.shape[1], k=1)] ])
详情:
-生成 结果-列x和y的串联np.c_[pole[:,x],pole[:,y]]
-生成一系列成对的列索引对于…中的x,y
-执行上述内容的垂直连接 “部分”np.concatenate
请从下一页重复和。“演示如何解决此编码问题”不是堆栈溢出问题。我们希望您做出诚实的尝试,然后就您的算法或技术提出具体问题。堆栈溢出不是为了替换现有的文档和教程。在遍历值并选择相应的列时,这是一个简单的问题。你被困在哪里?
pole[:,[0,1]]、pole[:,[0,2]]、…
或[pole[:,[0,i]]用于范围(1,5)内的i
array([[11, 21],
[12, 22],
[13, 23],
[14, 24],
[11, 31],
[12, 32],
[13, 33],
[14, 34],
[11, 41],
[12, 42],
[13, 43],
[14, 44],
[21, 31],
[22, 32],
[23, 33],
[24, 34],
[21, 41],
[22, 42],
[23, 43],
[24, 44],
[31, 41],
[32, 42],
[33, 43],
[34, 44]])