Han*_*Sun 5 python numpy scipy
本机python代码是这样的:
>>> a=[1,2,3,4,5,6]
>>> [[i+j for i in a] for j in a]
[[2, 3, 4, 5, 6, 7],
[3, 4, 5, 6, 7, 8],
[4, 5, 6, 7, 8, 9],
[5, 6, 7, 8, 9, 10],
[6, 7, 8, 9, 10, 11],
[7, 8, 9, 10, 11, 12]]
Run Code Online (Sandbox Code Playgroud)
但是,由于数组非常大,我必须使用numpy来完成这项工作.有没有人有关于如何在numpy做同样的工作的想法?
许多NumPy二元运算符都有一个outer方法可用于形成乘法(或在本例中为加法)表的等价物:
In [260]: import numpy as np
In [255]: a = np.arange(1,7)
In [256]: a
Out[256]: array([1, 2, 3, 4, 5, 6])
In [259]: np.add.outer(a,a)
Out[259]:
array([[ 2, 3, 4, 5, 6, 7],
[ 3, 4, 5, 6, 7, 8],
[ 4, 5, 6, 7, 8, 9],
[ 5, 6, 7, 8, 9, 10],
[ 6, 7, 8, 9, 10, 11],
[ 7, 8, 9, 10, 11, 12]])
Run Code Online (Sandbox Code Playgroud)