相关疑难解决方法(0)

什么是时间测试熊猫和numpy相关解决方案的简单框架

动机

我在这里和那里回答几个问题.我经常测试我和其他人的解决方案有多快.

是否有一个简单的框架来全面了解各种解决方案的速度有多快?

考虑数据帧 df

df = pd.DataFrame({
        'Group': list('QLCKPXNLNTIXAWYMWACA'),
        'Value': [29, 52, 71, 51, 45, 76, 68, 60, 92, 95,
                  99, 27, 77, 54, 39, 23, 84, 37, 99, 87]
    })
Run Code Online (Sandbox Code Playgroud)

我想总结Value按不同值分组的列Group.我有三种方法可以做到这一点.

import pandas as pd
import numpy as np
from numba import njit


def sum_pd(df):
    return df.groupby('Group').Value.sum()

def sum_fc(df):
    f, u = pd.factorize(df.Group.values)
    v = df.Value.values
    return pd.Series(np.bincount(f, weights=v).astype(int), pd.Index(u, name='Group'), name='Value').sort_index()

@njit
def wbcnt(b, w, k):
    bins = np.arange(k)
    bins = …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

21
推荐指数
3
解决办法
561
查看次数

使用插值的新值加倍python numpy数组的长度

我有一个5个数字的数组:

A = [10, 20, 40, 80, 110]
Run Code Online (Sandbox Code Playgroud)

我需要创建一个长度为10的新数组.

额外的数字可以是两个#之间的平均数A.

例如:编辑B = [10,15,20,30,40,60,80,95,110]

是否可以使用scipy或numpy功能?

python arrays numpy scipy

8
推荐指数
2
解决办法
2901
查看次数

如何交错numpy.ndarrays?

我目前正在寻找可以交错2 numpy.ndarray的方法.这样的

>>> a = np.random.rand(5,5)
>>> print a
[[ 0.83367208  0.29507876  0.41849799  0.58342521  0.81810562]
 [ 0.31363351  0.69468009  0.14960363  0.7685722   0.56240711]
 [ 0.49368821  0.46409791  0.09042236  0.68706312  0.98430387]
 [ 0.21816242  0.87907115  0.49534121  0.60453302  0.75152033]
 [ 0.10510938  0.55387841  0.37992348  0.6754701   0.27095986]]
>>> b = np.random.rand(5,5)
>>> print b
[[ 0.52237011  0.75242666  0.39895415  0.66519185  0.87043142]
 [ 0.08624797  0.66193953  0.80640822  0.95403594  0.33977566]
 [ 0.13789573  0.84868366  0.09734757  0.06010175  0.48043968]
 [ 0.28871551  0.62186888  0.44603741  0.3351644   0.6417847 ]
 [ 0.85745394  0.93179792  0.62535765  0.96625077  0.86880908]]
>>> 
Run Code Online (Sandbox Code Playgroud)

print c …

python arrays numpy

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

前k个列,每行包含pandas数据帧中的值

我有一个像下面这样的pandas数据帧:

   A  B  C  D
0  7  2  5  2
1  3  3  1  1
2  0  2  6  1
3  3  6  2  9
Run Code Online (Sandbox Code Playgroud)

可以有100个列,在上面的例子中我只显示了4个.

我想为每一行及其值提取top-k列.

我可以使用以下方法获得top-k列:

pd.DataFrame({n: df.T[column].nlargest(k).index.tolist() for n, column in enumerate(df.T)}).T
Run Code Online (Sandbox Code Playgroud)

其中,对于k = 3给出:

   0  1  2
0  A  C  B
1  A  B  C
2  C  B  D
3  D  B  A
Run Code Online (Sandbox Code Playgroud)

但我想拥有的是:

   0  1  2  3  4  5
0  A  7  C  5  B  2
1  A  3  B  3  C  1
2  C …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

从两个数组创建numpy数组,以便备用索引包含来自不同数组的元素

我正在寻找一种以以下方式在python中合并两个numpy数组的快速方法。例如,如果我有以下两个数组,

arr1 = np.array([0.0, 1.0, 11.0, 111.0])
arr2 = np.array([0.5, 1.5, 11.5, 111.5])
Run Code Online (Sandbox Code Playgroud)

那么我希望合并后的数组(例如arr3)包含arr1arr2在交替索引中的元素。喜欢,

arr3 = np.array([0.0, 0.5, 1.0, 1.5, 11.0, 11.5, 111.0, 111.5]) 
Run Code Online (Sandbox Code Playgroud)

我意识到我可以使用两个for循环来实现这一点,在其中我可以将arr1和的元素存储在arr2(of arr3)的备用索引中。但是,在我的实际工作中,我将处理庞大的数组(arr1arr2),并且我想确保自己使用的是高效且快速的方法来实现此功能(即创建arr3

我将不胜感激任何帮助。

python arrays numpy

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

标签 统计

python ×5

numpy ×4

arrays ×3

pandas ×2

dataframe ×1

scipy ×1