Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays_Numpy - Fatal编程技术网

Python 如何将一个给定的数字放在另一个数组中另一个数字的所有匹配项的相同位置?

Python 如何将一个给定的数字放在另一个数组中另一个数字的所有匹配项的相同位置?,python,arrays,numpy,Python,Arrays,Numpy,我想把一个给定的数字放在另一个数组中另一个数组的所有匹配项的相同位置 为了理解我所说的,我做了一个简单的函数,它做了我想要的,我向你们展示了执行过程。但是 我的问题是:在像numpy这样的模块中是否有一个命令已经做到了这一点 作用 执行 Numpy在这方面很在行。您可以使用np.where和花式索引,如下所示 tab2[np.where(tab1==1.)] = 2. 演示: >>> import numpy as np >>> tab1 = np.arr

我想把一个给定的数字放在另一个数组中另一个数组的所有匹配项的相同位置

为了理解我所说的,我做了一个简单的函数,它做了我想要的,我向你们展示了执行过程。但是

我的问题是:在像numpy这样的模块中是否有一个命令已经做到了这一点

作用 执行
Numpy在这方面很在行。您可以使用
np.where
和花式索引,如下所示

tab2[np.where(tab1==1.)] = 2.

演示:

>>> import numpy as np
>>> tab1 = np.array([[0,1.,0],[1.,1.,1.],[0,1.,0]])
>>> tab2 = np.array([[1.,1.,0],[1.,0.,1.],[0,1.,1.]])
>>> tab2[np.where(tab1==1.)] = 2.0
>>> tab2
array([[ 1.,  2.,  0.],
       [ 2.,  2.,  2.],
       [ 0.,  2.,  1.]])

Numpy在这方面很在行。您可以使用
np.where
和花式索引,如下所示

tab2[np.where(tab1==1.)] = 2.

演示:

>>> import numpy as np
>>> tab1 = np.array([[0,1.,0],[1.,1.,1.],[0,1.,0]])
>>> tab2 = np.array([[1.,1.,0],[1.,0.,1.],[0,1.,1.]])
>>> tab2[np.where(tab1==1.)] = 2.0
>>> tab2
array([[ 1.,  2.,  0.],
       [ 2.,  2.,  2.],
       [ 0.,  2.,  1.]])

为什么结果在[1,1]位置有2个?对不起,我改变了我的问题,没有很好地解释。我想要一个模块,做我的功能。我知道这很奇怪。你的问题很让人困惑。如果tab1在[1,1]位置有1,而tab2在[1,1]位置有0,那么结果如何在同一位置有2?@JayParikh因为索引[1,1]包含
tab1
中的值1,他用值2替换了
tab2
中的值。他的问题是如何获取numpy数组中每次出现的值的索引,并在第二个numpy数组中更新这些索引处的值。我知道我的问题非常混乱,但我的函数非常清楚:它将一个2。在表2中,每次都有一个1。在表1中。所以如果有一个1。在表1中的[1,1]处有一个2。在表2中的[1,1]处。抱歉@Jay Parikh我的问题没有很好地表述,但至少Tom Wyllie理解了。为什么结果在位置[1,1]处有2个?我更改了我的问题抱歉,没有很好地解释。我想要一个模块,做我的功能。我知道这很奇怪。你的问题很让人困惑。如果tab1在[1,1]位置有1,而tab2在[1,1]位置有0,那么结果如何在同一位置有2?@JayParikh因为索引[1,1]包含
tab1
中的值1,他用值2替换了
tab2
中的值。他的问题是如何获取numpy数组中每次出现的值的索引,并在第二个numpy数组中更新这些索引处的值。我知道我的问题非常混乱,但我的函数非常清楚:它将一个2。在表2中,每次都有一个1。在表1中。所以如果有一个1。在表1中的[1,1]处有一个2。在表2中的[1,1]处。抱歉@Jay Parikh我的问题没有很好的表述,但至少Tom Wyllie理解了。