Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何更改数组的类型?_Python_Python 3.x_Numpy - Fatal编程技术网

Python 如何更改数组的类型?

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 = [[

标题有点错误,但我不知道我还能用什么,sry

我所拥有的: 我有一个函数k,它有两个输入a和b,它们的类型是“class'numpy.ndarray'”,形状相同,如下所示:

(100,)

(100,)

(100,)

(100,)

求a的每个向量(shape=(100,))的最小值,并用a的最小值的指数求b上的元素

因此,如果a的第一个向量在位置[35]上有他的最小值,我们希望元素在位置[35]上,但是来自b的第一个向量

我希望这有意义

最后我想要整数

编辑:

这里是一些示例输入

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)]