Python 如何更改数组的类型?
标题有点错误,但我不知道我还能用什么,sry 我所拥有的: 我有一个函数k,它有两个输入a和b,它们的类型是“class'numpy.ndarray'”,形状相同,如下所示: (100,) (100,) (100,) (100,) 求a的每个向量(shape=(100,))的最小值,并用a的最小值的指数求b上的元素 因此,如果a的第一个向量在位置[35]上有他的最小值,我们希望元素在位置[35]上,但是来自b的第一个向量 我希望这有意义 最后我想要整数 编辑: 这里是一些示例输入Python 如何更改数组的类型?,python,python-3.x,numpy,Python,Python 3.x,Numpy,标题有点错误,但我不知道我还能用什么,sry 我所拥有的: 我有一个函数k,它有两个输入a和b,它们的类型是“class'numpy.ndarray'”,形状相同,如下所示: (100,) (100,) (100,) (100,) 求a的每个向量(shape=(100,))的最小值,并用a的最小值的指数求b上的元素 因此,如果a的第一个向量在位置[35]上有他的最小值,我们希望元素在位置[35]上,但是来自b的第一个向量 我希望这有意义 最后我想要整数 编辑: 这里是一些示例输入 a = [[
a = [[0.24875591 0.16306678 0.78364326 ... 0.65339055 0.36671955 0.79556977]
[0.01090705 0.48027704 0.09681013 ... 0.19689527 0.88788462 0.64784676]
[0.0277094 0.63714653 0.87690794 ... 0.4202944 0.52492127 0.65170223]
...
[0.75916264 0.99673363 0.2800721 ... 0.7501566 0.98627157 0.06429751]
[0.2447071 0.57766005 0.77387911 ... 0.1023757 0.71880919 0.45419627]
[0.31396027 0.26280255 0.13444513 ... 0.51871024 0.26153987 0.63990427]]
[[0.24875591 0.16306678 0.78364326 ... 0.65339055 0.36671955 0.79556977]
[0.01090705 0.48027704 0.09681013 ... 0.19689527 0.88788462 0.64784676]
[0.0277094 0.63714653 0.87690794 ... 0.4202944 0.52492127 0.65170223]
...
[0.75916264 0.99673363 0.2800721 ... 0.7501566 0.98627157 0.06429751]
[0.2447071 0.57766005 0.77387911 ... 0.1023757 0.71880919 0.45419627]
[0.31396027 0.26280255 0.13444513 ... 0.51871024 0.26153987 0.63990427]]
a的形状是:
(100,)
(100,)
b的形状是:
(100,)
(100,)
输出的形式应该是这样的
0
1
0
1
1
...
使用:
您可以使用
np.argmin
并使用它索引到b
:
b[range(len(b)), np.argmin(a, axis=1)]
下面是一个关于随机整数数组的示例解决方案
arr_1=np.random.randint(低=0,高=20,大小=(4,3))
arr_2=np.random.randint(低=0,高=20,大小=(4,3))
arr_1_min_inds=np.argmin(arr_1,轴=1)
arr_2_res=arr_2[np.arange(arr_1_min_inds.shape[0]),arr_1_min_inds]
您好,很遗憾这对我不起作用,输出仍然是这样[4][4][1][0][0][1]您能提供一个[最小可复制示例](/help/mcve),特别是指定输入和预期输出吗?@norok2您好,我在我的问题中添加了一些输入。现在还不清楚您想做什么,现在还不清楚为什么a&b有形状(100,);(100,). 每个数组都应该有一个形状。@JonnyEnglish我在这里强调最小化的必要性。试着用一个小而简单的玩具例子来重现这个问题。我支持@BiRico的评论,数组形状的描述毫无意义。你的标题也不正常,我将尝试建议编辑。最后,您的“输出形式”示例可能不正确。
return b[index].astype(int)
b[range(len(b)), np.argmin(a, axis=1)]