【发布时间】:2016-03-29 10:49:03
【问题描述】:
我想对这样的 numpy 数组做一些求和
import numpy as np
import sympy as sy
import cv2
i, j = sy.symbols('i j', Integer=True)
#next read some grayscale image to create a numpy array of pixels
a = cv2.imread(filename)
b = sy.summation(sy.summation(a[i][j], (i,0,1)), (j,0,1)) #double summation
但我遇到了一个错误。是否可以将 numpy 符号处理为 numpy 数组的索引?如果没有,你能给我一个解决方案吗? 谢谢。
【问题讨论】:
-
为什么需要使用符号求和?您想为这些符号使用任何属性吗?在我看来,您需要的是正常的求和:
sum(sum(a))。内部sum对列求和,第二对行求和。如果你对反向感兴趣,可以改用sum(sum(a.transpose())。 -
juandesat 说我有一个像素数组,其形状 (row,col) 由一个 numpy 数组表示,接下来我将它分成 3*3 像素块,以每个 P(i,j) 为中心,其中 P (i,j) 是整个 numpy 数组中 (i,j) 处的像素。我想要的是计算每个 3*3 块图像的平均像素值作为 P(i,j) 的新值,因此“i”和“j”将是动态的。该数组只是一个示例,但我是什么使用 sympy 符号作为 numpy 数组的索引。谢谢
-
我什至可以从另一个方向问我的问题:例如,是否可以将 sympy 符号的值作为 python 整数值获取?
-
@NarcisseDoudieuSiewe SymPy 函数通常在 SymPy 对象上运行,例如
Symbol实例。通常你象征性地制定一个方程,然后使用例如生成一个回调。lambdify然后可以对 numpy 数组进行操作。