gpt4 book ai didi

python - memoryview 上的微积分(python 数组)

转载 作者:太空宇宙 更新时间:2023-11-03 15:17:06 25 4
gpt4 key购买 nike

我打算在 python 数组中使用 memoryview:

...
cdef double[:, :] a = np.array([[1, 1, 0]])
cdef double[:, :] c = 0,5 * a * a.T

但它引发了一个错误:

Invalid operand types for '*' (double; double[:, :])

遇到这种情况我该怎么办?

最佳答案

获取标量和数组乘积的能力是 numpy 数组的一个特性(参见 broadcasting),但显然不是 Cython 的内存 View 。完成此操作的方法是遍历内存块并将每个条目与所需值相乘。或者,坚持使用 numpy 数组。

示例代码:

cdef double[:, :] c = np.empty((1, 3))
cdef int i
for i in range(3):
c[0, i] = a[0, i] * a[0, i] * 0.5

关于python - memoryview 上的微积分(python 数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20155993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com