python 获取行列号两个数组相等_python – 寻找在numpy中找到两个相等长度数组之间精确重叠的最快方法...
我正在尋找最佳(最快)的方法來找到numpy中兩個數組之間的確切重疊.給定兩個數組x和y
x = array([1,0,3,0,5,0,7,4],dtype=int)
y = array([1,4,0,0,5,0,6,4],dtype=int)
我想得到的是一個長度相同的數組,只包含兩個相等的數字:
array([1,0,0,0,5,0,0,4])
首先我試過了
x&y
array([1,0,0,0,5,0,6,4])
然后我意識到,對于兩個數字,如果它們是>則總是如此. 0.
解決方法:
result = numpy.where(x == y, x, 0)
請查看numpy.where文檔以獲取解釋.基本上,numpy.where(a,b,c),對于條件a,返回形狀a的數組,并且具有來自b或c的值,這取決于a的對應元素是否為真. b或c可以是標量.
順便說一下,x&對于兩個正數,y不一定是“總是正確的”.它對x和y中的元素執行bitwise-and:
x = numpy.array([2**p for p in xrange(10)])
# x is [ 1 2 4 8 16 32 64 128 256 512]
y = x - 1
# y is [ 0 1 3 7 15 31 63 127 255 511]
x & y
# result: [0 0 0 0 0 0 0 0 0 0]
這是因為x中每個元素的按位表示形式為1,后跟n個零,y中的對應元素為n 1s.通常,對于兩個非零數字a和b,a& b可以等于零,或者非零,但不一定等于a或b.
標簽:python,numpy
來源: https://codeday.me/bug/20190726/1546893.html
總結
以上是生活随笔為你收集整理的python 获取行列号两个数组相等_python – 寻找在numpy中找到两个相等长度数组之间精确重叠的最快方法...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gpu超算算法_科学网—GPU“虎山”探
- 下一篇: cv2 inrange灰度图_Pytho