小编Mat*_*ien的帖子

熊猫:固定宽度的直方图

我有想要做直方图的数据,但我希望直方图从给定值开始,并且要修复条形的宽度.例如,对于系列[1,3,5,10,12,20,21,25],我想,而不是

>>> p.Series([1, 3, 5, 10, 12, 20, 21, 25]).hist(bins=3).figure

#  |       |
#  |   |   |
#  |   |   |
#  0   8.5 17
Run Code Online (Sandbox Code Playgroud)

当前直方图

我希望条的宽度为10:

|       |
|   |   |
|   |   |
0   10  20
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点 ?

编辑:我最终得到了我想要的东西 良好的组织

python matplotlib pandas

10
推荐指数
1
解决办法
2万
查看次数

用于动态时间包装的矢量化循环

我试图加快DTW(X,Y,DIST =拉姆达X,Y:规范(X - Y,ORD = 1)))在 https://github.com/pierre-rouanet/dtw/blob/master /dtw.py通过矢量化它。第一个循环很简单,但我不知道如何矢量化第二个循环:

for i in range(r):
    for j in range(c):
        D[i+1, j+1] += min(D[i, j], D[i, j+1], D[i+1, j])
Run Code Online (Sandbox Code Playgroud)

主要问题是,即使我迭代 i,每个 D[i+1, j+1] 也依赖于 D[i+1, j]。

是否可以对其进行矢量化,还是必须使用 Cython ?

对于形状为 1000x2 的 x 和 y,原始代码需要 15s,而我当前的代码需要 1.8s,主要是在第二个循环中。

编辑:最小的工作示例

np.random.seed(0); A = np.random.randn(4, 3)
r, c = np.array(A.shape)-1
for i in range(r):
    for j in range(c):
        A[i+1, j+1] += min(A[i, j], A[i, j+1], A[i+1, j])
A
Run Code Online (Sandbox Code Playgroud)

应该给:

array([[ 1.76405235,  0.40015721,  0.97873798],
       [ 2.2408932 , …
Run Code Online (Sandbox Code Playgroud)

python numpy

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

标签 统计

python ×2

matplotlib ×1

numpy ×1

pandas ×1