Sau*_*tro 60
使用numpy.apply_along_axis()
.假设您的矩阵是2D,您可以使用如下:
import numpy as np
mymatrix = np.matrix([[11,12,13],
[21,22,23],
[31,32,33]])
def myfunction( x ):
return sum(x)
print np.apply_along_axis( myfunction, axis=1, arr=mymatrix )
#[36 66 96]
Run Code Online (Sandbox Code Playgroud)
小智 56
虽然您当然应该提供更多信息,但如果您尝试遍历每一行,则可以使用for循环进行迭代:
import numpy
m = numpy.ones((3,5),dtype='int')
for row in m:
print str(row)
Run Code Online (Sandbox Code Playgroud)
如果您想尝试使用多进程来处理 numpy 数组的每一行,这是我的看法,
from multiprocessing import Pool
import numpy as np
def my_function(x):
pass # do something and return something
if __name__ == '__main__':
X = np.arange(6).reshape((3,2))
pool = Pool(processes = 4)
results = pool.map(my_function, map(lambda x: x, X))
pool.close()
pool.join()
Run Code Online (Sandbox Code Playgroud)
pool.map 接受一个函数和一个可迭代对象。
我使用“map”函数在数组的每一行上创建一个迭代器。
也许有更好的方法来创建可迭代对象。
归档时间: |
|
查看次数: |
115333 次 |
最近记录: |