相关疑难解决方法(0)

numpy np.apply_along_axis功能加快了吗?

np.apply_along_axis()函数似乎非常慢(15分钟后没有输出).有没有一种快速的方法在长阵列上执行此功能而无需并行化操作?我特别谈论有数百万个元素的数组.

这是我想要做的一个例子.请忽略my_func的简单定义,目标不是将数组乘以55(当然这可以在适当的位置完成),而是一个例子.在实践中,my_func稍微复杂一些,需要额外的参数,因此a的每个元素都被不同地修改,即不仅仅乘以55.

>>> def my_func(a):
...     return a[0]*55
>>> a = np.ones((200000000,1))
>>> np.apply_along_axis(my_func, 1, a)
Run Code Online (Sandbox Code Playgroud)

编辑:

a = np.ones((20,1))

def my_func(a, i,j):
...     b = np.zeros((2,2))
...     b[0,0] = a[i]
...     b[1,0] = a[i]
...     b[0,1] = a[i]
...     b[1,1] = a[j]
...     return  linalg.eigh(b)


>>> my_func(a,1,1)
(array([ 0.,  2.]), array([[-0.70710678,  0.70710678],
   [ 0.70710678,  0.70710678]]))
Run Code Online (Sandbox Code Playgroud)

python numpy

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

多个数组的Python apply_along_axis

如果我有一个函数,f(x)将一个1d数组作为参数并产生一个1d数组作为输出,我可以使用numpy.apply_along_axis将该函数应用于一行的二维数组X的每一行是f的有效参数.

现在我想用一个带两个参数的函数做类似的事情.例如,我有一个函数f(x,y),它将两个1d数组作为参数,我还有两个2d数组X,Y都有n行.我想对每对行应用f,产生一个又有n行的数组.

如何以有效的方式实现这一目标?

我也对变体感兴趣,其中f需要更多参数或涉及更高维数组:

例如,f可以取3个x,y,z形状的阵列(2,2); (3); (5,)并产生形状(4,4)的结果.

我有X,Y,Z形状(50,100,2,2); (50,100,3); (50,100,5)并想要一个形状的结果(50,100,4,4)

python numpy

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

Numpy 沿轴卷积 2 个二维数组

我有 2 个二维数组。我试图沿轴 1 进行卷积。np.convolve没有提供axis参数。这里的答案是,使用 1 个 2D 数组与 1D 数组进行卷积np.apply_along_axis。但它不能直接应用于我的用例。这里的问题没有答案。

MWE如下。

import numpy as np

a = np.random.randint(0, 5, (2, 5))
"""
a=
array([[4, 2, 0, 4, 3],
       [2, 2, 2, 3, 1]])
"""
b = np.random.randint(0, 5, (2, 2))
"""
b=
array([[4, 3],
       [4, 0]])
"""

# What I want
c = np.convolve(a, b, axis=1)  # axis is not supported as an argument
"""
c=
array([[16, 20,  6, …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy convolution

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

不同维度的python卷积

我正在尝试用Python实现卷积神经网络.
但是,当我使用signal.convolve或np.convolve时,它不能对X,Y进行卷积(X是3d,Y是2d).X正在训练小型车.Y是过滤器.我不想为每个训练向量做循环,如:

for i in xrange(X.shape[2]):
    result = signal.convolve(X[:,:,i], Y, 'valid')
    ....
Run Code Online (Sandbox Code Playgroud)

那么,有什么功能可以用来有效地进行卷积吗?

python numpy scipy deep-learning

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

标签 统计

numpy ×4

python ×4

arrays ×1

convolution ×1

deep-learning ×1

scipy ×1