假设我有一个 numpy 数组
a b c
A = i j k
u v w
Run Code Online (Sandbox Code Playgroud)
我想将值中心元素与其八个相邻元素中的一些元素(沿轴或沿对角线)进行比较。除了嵌套的 for 循环(对于大矩阵来说太慢)之外,还有什么更快的方法吗?
更具体地说,我想做的是将元素的值与其邻居进行比较并分配新值。
例如:
if (j == 1):
if (j>i) & (j>k):
j = 999
else:
j = 0
if (j == 2):
if (j>c) & (j>u):
j = 999
else:
j = 0
...
Run Code Online (Sandbox Code Playgroud)
像这样的东西。
我知道有 scipy.signal.convolve2d 函数来处理 2d numpy 数组的二维卷积,并且有 numpy.ma 模块来处理丢失的数据,但这两种方法似乎并不兼容(这意味着即使你在 numpy 中屏蔽了一个二维数组,convolve2d 中的过程不会受到影响)。有没有办法仅使用 numpy 和 scipy 包来处理卷积中的缺失值?
例如:
1 - 3 4 5
1 2 - 4 5
Array = 1 2 3 - 5
- 2 3 4 5
1 2 3 4 -
Kernel = 1 0
0 -1
Run Code Online (Sandbox Code Playgroud)
卷积所需的结果(数组,内核,边界 =“包裹”):
-1 - -1 -1 4
-1 -1 - -1 4
Result = -1 -1 -1 - 5
- -1 -1 4 4
1 -1 -1 -1 -
Run Code Online (Sandbox Code Playgroud)
感谢Aguy的建议,这是一个非常好的方法来帮助卷积后的结果计算。现在假设我们可以从 Array.mask …
我是SQL新手并且对"WHERE 1 IN"子句感到困惑,我的问题是:
让我们以w3schools的数据库为例.
如果我查询为:
SELECT C1.CustomerID From Customers C1
WHERE 1 IN
(SELECT COUNT(O1.CustomerID) FROM Orders O1
WHERE C1.CustomerID = O1.CustomerID);
Run Code Online (Sandbox Code Playgroud)
这个查询是什么意思?任何帮助将不胜感激,谢谢!