问题标签 [numpy-ufunc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 给定两个类似数组的操作数(而不是尝试广播它们),如何使 ufunc 输出矩阵?
我想从 a 中得到一个给定两个值的矩阵ndarray
,ufunc
例如:
上面的代码不起作用(它给出了 aValueError
因为它尝试广播两个数组并且由于它们具有不同的形状而失败:(5,)和(3,));我想获得一个值矩阵,其中行对应于度数,列对应于多项式被评估的点(反之亦然,没关系)。
目前我的解决方法是简单地使用for
-loop:
有没有办法做到这一点?一般来说,如果您有类似 array_like 的参数,您如何让ufunc
用户知道您想要一个-n
维数组?n
我知道numpy.vectorize
,但这似乎既不比简单的循环更快也不优雅for
(而且我什至不确定你是否可以将它应用于现有的ufunc
)。
更新ufunc
接收 3 个或更多参数的 's 呢?尝试outer
方法给出了一个ValueError: outer product only supported for binary functions
. 例如,scipy.special.eval_jacobi
。
python - 如何在不使用 for 循环的情况下将矢量化函数映射到 numpy 数组?
所以这就是我已经拥有的:
这是我想做的事情:
但是,当我运行上述代码块时,出现以下错误:
根据我对广播如何工作的理解numpy
,这应该有效。我可以只使用一个for
循环,但随着样本数量的增加,它会变得非常慢。
停止
python - 在最后一个轴上将外部减法与元素减法相结合?
考虑上面的代码。我有一个形状数组A
(4,4,4,16,3),它表示格子中的 3D 位置向量(dim 3 的最后一个轴是 x、y、z 坐标)。前 4 个维度索引点阵中的站点。
我想要的是
我想从 中生成A
一个数组,该数组包含晶格中站点之间所有可能的分离向量。B
这意味着一个形状为 的输出数组(4,4,4,16,4,4,4,16,3)
。前 4 个维度是站点 i,接下来是站点 j 的 4 个维度,然后是位置向量差的 (x,y,z) 坐标的最后一个维度。
即A[a,b,c,d]
:形状(3,)是第一个站点的(x,y,z);A[r,s,t,u]
:形状(3,)是第二个站点的(x,y,z);然后我想B[a,b,c,d,r,s,t,u]
成为前两者之间的 (x,y,z) 差异。
我的尝试
我知道该ufunc.outer
功能,正如您在我的代码尝试中看到的那样。但我坚持将它与在每个A
.
在我的尝试中,B
具有我想要的正确尺寸,但这显然是错误的。有什么提示吗?(除非使用任何 for 循环)
python - Numpy,将数组与标量相乘
是否可以使用 ufuncs https://docs.scipy.org/doc/numpy/reference/ufuncs.html
为了将函数映射到数组(一维和/或二维)和标量
如果不是我的实现方式这个?
例如:
预期结果:
如果它与问题相关,我正在使用 python 2.7。
python - ufunc与Numpy中的基本算术运算符
我看到 Universal Function(ufunc) 用于执行元素数组操作。
这段代码类似于arr + arr2
. 在那种情况下,我们为什么要使用 ufunc?
python - 如何使用 numpy 沿轴制作 Hadamard 产品?
我正在尝试使用 2-D 阵列制作 3-D 的 Hadamard 产品。2-D 数组共享 3-D 数组的前两个轴的形状,应该沿着 2 轴(因此,第 3 轴)移动以进行乘法运算,这意味着:用切片 0 制作 Hadamard 积,然后切片 1,等等(参见图像,示意图)。
原始的 3-D 数组是一个opencv
图像,因此具有 fe 的形状(1080, 1920, 3)
。二维阵列是该图像的一个切片,因此其形状为(1080, 1920)
有没有办法在没有循环或自己指定每个切片的情况下做到这一点?或者是循环到这里的方式吗?
有效的是:
但是,我不希望在代码中进行两次计算。
我试过了:
虽然这在使用二维和一维数组时有效
它在 3-D/2-D 情况下给出了广播错误:
同样适用于np.apply_along_axis
:
产生以下结果:
但我想这行不通,因为它是为一维函数设计的......
python-3.x - 评估数组值函数python 3
我需要集成一个矩阵函数,如下例所示:
执行此操作的非有效方法是使用三个 for 循环。虽然,我想让它更有效率。我考虑过使用“地图”,例如:
a1
, a2
,a3
和w
是相同大小的数组(a 是样本点,w 是权重)
这是最优化的方式吗?