小编use*_*620的帖子

scipy中的高斯滤波器

我想在512x512像素的图像上应用尺寸为5x5像素的高斯滤镜.我找到了一个scipy函数来做到这一点:

scipy.ndimage.filters.gaussian_filter(input, sigma, truncate=3.0)
Run Code Online (Sandbox Code Playgroud)

我如何选择西格玛参数以确保我的高斯窗口是5x5像素?

image-processing gaussian scipy

18
推荐指数
2
解决办法
2万
查看次数

Python中的快速逆和转置矩阵

我有一个大的矩阵A状的(n, n, 3, 3)n5000.现在我想找到矩阵的逆和转置A:

import numpy as np
A = np.random.rand(1000, 1000, 3, 3)
identity = np.identity(3, dtype=A.dtype)
Ainv = np.zeros_like(A)
Atrans = np.zeros_like(A)
for i in range(1000):
    for j in range(1000):
        Ainv[i, j] = np.linalg.solve(A[i, j], identity)
        Atrans[i, j] = np.transpose(A[i, j])
Run Code Online (Sandbox Code Playgroud)

有没有更快,更有效的方法来做到这一点?

python transpose numpy matrix-inverse

5
推荐指数
3
解决办法
2万
查看次数

memoryview 上的微积分(python 数组)

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

...
cdef double[:, :] a = np.array([[1, 1, 0]])
cdef double[:, :] c = 0,5 * a * a.T
Run Code Online (Sandbox Code Playgroud)

但它引发了一个错误:

'*' 的操作数类型无效(double; double[:, :])

在这种情况下我能做什么?

python arrays cython memoryview

4
推荐指数
1
解决办法
710
查看次数

如何加速这个python代码(条件循环)?

我试图在循环中找到一种不使用if ... else条件的方法,以便加速代码,任何想法?

for i in range(n):
    for j in range(n):
        if a1[i, j] == 0:
            b1[i, j] = 1
        else:
            b1[i, j] = a1 / np.sin(a1)
        if a2[i, j] == 0:
            b2[i, j] = 1
        else:
            b2[i, j] = a2 / np.sin(a2)
Run Code Online (Sandbox Code Playgroud)

python performance loops numpy

1
推荐指数
1
解决办法
245
查看次数