如何更改数组的类型?

2024-07-03 06:47:27 发布

您现在位置:Python中文网/ 问答频道 /正文

标题有点错,但我不知道我还能用什么,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 = 
[1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1
 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0
 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0]
[1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1
 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0
 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0]

b的形状是:

(100,)

(100,)

输出的形式应该是这样的

0
1
0
1
1
...

Tags: 函数numpy元素编辑标题类型公司整数
3条回答

您可以使用np.argmin并使用它索引到b

b[range(len(b)), np.argmin(a, axis=1)]

下面是一个关于随机整数数组的示例解决方案。你知道吗

arr_1 = np.random.randint(low=0, high=20, size=(4, 3))
arr_2 = np.random.randint(low=0, high=20, size=(4, 3))

arr_1_min_inds = np.argmin(arr_1, axis=1)

arr_2_res = arr_2[np.arange(arr_1_min_inds.shape[0]), arr_1_min_inds]

使用^{}

return b[index].astype(int)

相关问题 更多 >