小编han*_*ist的帖子

np.linalg.norm ord=2 不给出欧几里得范数

我正在尝试计算两个矩阵之间的欧几里得距离,我希望它由逐元素平方差之和的平方根给出。

在我看来,这正是由 numpy 的linalg.norm函数计算的计算,但它似乎与我的预期结果不符。

例如,此代码返回不同的值(5.385vs 5.339

import numpy as np

a = np.arange(6).reshape(2, 3)
b = np.array([[1,2,3], [-1,1,4]])

print(np.sqrt(np.sum(np.square(a-b))))
print(np.linalg.norm(a-b, 2))
Run Code Online (Sandbox Code Playgroud)

我是否误解了linalg.norm函数?为什么上述两种计算方法返回的值不相同?

python numpy

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

数据帧的排序子数组的滚动平均值

给定一个大的多列 Pandas 数据框,我想尽快计算N元素窗口上的滚动“k-mean” 。
这里“k-mean”定义为排除最大和最小元素的N-2k元素的均值。Nkk

例子

给定数据框:

df = pandas.DataFrame(
{'A': [34, 78, -2, -96, 58, -34, 44, -50, 42],
 'B': [-82, 28, 96, 46, 36, -34, -20, 10, -40]})

    A   B
0  34 -82
1  78  28
2  -2  96
3 -96  46
4  58  36
5 -34 -34
6  44 -20
7 -50  10
8  42 -40
Run Code Online (Sandbox Code Playgroud)

随着N=6k=1预期输出是:

      A     B
0   NaN   NaN
1   NaN   NaN
2 …
Run Code Online (Sandbox Code Playgroud)

python performance pandas

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

标签 统计

python ×2

numpy ×1

pandas ×1

performance ×1