从向量自身的逐元素运算生成数组
Generate array from elementwise operation of vector with itself
通过在向量的每个元素和整个向量之间执行运算来生成数组的“最佳”方法是什么?
下面的示例使用循环和减法作为操作,但在一般情况下,操作可以是任何函数。
“最佳”的标准可以是:执行速度、所需代码量、可读性
a = np.array([1, 2, 3])
dim = len(a)
b = np.empty([dim, dim])
def operation(x1, x2):
return x1-x2
for i in range(dim):
b[i,:] = operation(a, a[i])
print(b)
我认为 numpy 广播将满足您的所有条件;)
>>> a - a[:, None]
array([[ 0, 1, 2],
[-1, 0, 1],
[-2, -1, 0]])
通过在向量的每个元素和整个向量之间执行运算来生成数组的“最佳”方法是什么?
下面的示例使用循环和减法作为操作,但在一般情况下,操作可以是任何函数。
“最佳”的标准可以是:执行速度、所需代码量、可读性
a = np.array([1, 2, 3])
dim = len(a)
b = np.empty([dim, dim])
def operation(x1, x2):
return x1-x2
for i in range(dim):
b[i,:] = operation(a, a[i])
print(b)
我认为 numpy 广播将满足您的所有条件;)
>>> a - a[:, None]
array([[ 0, 1, 2],
[-1, 0, 1],
[-2, -1, 0]])