如何提取python中两个数组对应的元素
How to extract corresponding elements of two arrays in python
我有两个 3d 数组,
array_1=array([[[4, 6, 6, 8],[4, 5, 8, 5]],
[[6, 0, 8, 7],[9, 9, 2, 1]],
[[5, 2, 0, 9],[4, 3, 9, 7]]])
array_2=array([[['d1', 'd8', 'd7', 'd6'],['d1', 'd9', 'd7', 'd3']],
[['d3', 'd5', 'd5', 'd2'],['d3', 'd4', 'd6', 'd4']],
[['d4', 'd3', 'd9', 'd6'],['d5', 'd8', 'd1', 'd6']]])
我想得到 array_1 的最大值和 array_2 的相应元素,即;
max_values = array([[6, 6, 6, 9, 5],[9, 9, 9, 7, 9]])
cor_elements = array([['d3', 'd8', 'd5', 'd6'],['d3','d4', 'd1', 'd6']])
我可以通过以下代码获得 array_1 的 max_values 的最大值和索引,
import numpy as np
max_values=array_1.max(axis=0)
max_ind=array_1.argmax(axis=0)
你能帮我看看如何从 array_2 得到 cor_elements 吗?
使用numpy.indices
的一种方式:
argmax = array_1.argmax(axis=0)
j, k = np.indices(argmax.shape)
array_2[argmax, j, k]
输出:
array([['d3', 'd8', 'd5', 'd6'],
['d3', 'd4', 'd1', 'd6']], dtype='<U2')
我有两个 3d 数组,
array_1=array([[[4, 6, 6, 8],[4, 5, 8, 5]],
[[6, 0, 8, 7],[9, 9, 2, 1]],
[[5, 2, 0, 9],[4, 3, 9, 7]]])
array_2=array([[['d1', 'd8', 'd7', 'd6'],['d1', 'd9', 'd7', 'd3']],
[['d3', 'd5', 'd5', 'd2'],['d3', 'd4', 'd6', 'd4']],
[['d4', 'd3', 'd9', 'd6'],['d5', 'd8', 'd1', 'd6']]])
我想得到 array_1 的最大值和 array_2 的相应元素,即;
max_values = array([[6, 6, 6, 9, 5],[9, 9, 9, 7, 9]])
cor_elements = array([['d3', 'd8', 'd5', 'd6'],['d3','d4', 'd1', 'd6']])
我可以通过以下代码获得 array_1 的 max_values 的最大值和索引,
import numpy as np
max_values=array_1.max(axis=0)
max_ind=array_1.argmax(axis=0)
你能帮我看看如何从 array_2 得到 cor_elements 吗?
使用numpy.indices
的一种方式:
argmax = array_1.argmax(axis=0)
j, k = np.indices(argmax.shape)
array_2[argmax, j, k]
输出:
array([['d3', 'd8', 'd5', 'd6'],
['d3', 'd4', 'd1', 'd6']], dtype='<U2')