小编Cle*_*leb的帖子

最有效的方法来汇总巨大的2D NumPy数组,按ID列分组?

我有一个海量数据阵列(500k行),看起来像:

id  value  score
1   20     20
1   10     30
1   15     0
2   12     4
2   3      8
2   56     9
3   6      18
...
Run Code Online (Sandbox Code Playgroud)

如您所见,左侧有一个非唯一ID列,第三列中有各种分数.

我希望快速添加按ID分组的所有分数.在SQL中,这看起来像SELECT sum(score) FROM table GROUP BY id

使用NumPy,我尝试迭代每个ID,按每个ID截断表,然后将该表的得分相加.

table_trunc = table[(table == id).any(1)]
score       = sum(table_trunc[:,2])
Run Code Online (Sandbox Code Playgroud)

不幸的是,我发现第一个命令是狗慢.有没有更有效的方法来做到这一点?

python numpy

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

如何计算R中庞大数据集中两个变量的相关性?

我有一个包含六列的大型数据集(称为A,B,C,D,E,F),大约450,000行.我只是试图找到列之间的相关性AB:

cor(A, B)
Run Code Online (Sandbox Code Playgroud)

我得到了

[1] NA

结果是.我该怎么做才能解决这个问题?

r correlation

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

如何将第一列设置为空np.zeros numPy矩阵的常量值?

我正在为水位表模型设置一些边界条件,我能够将整个第一行设置为常量值,而不是整个第一列.我np.zeros((11, 1001))用来做一个空矩阵.有谁知道为什么我成功定义第一行,但不是第一列?我已经注意到下面的问题.

import numpy as np

x = range(0, 110, 10)
time = range(0, 5005, 5)
xSize = len(x)
timeSize = len(time)

dx = 10
dt = 5
Sy = 0.1
k = 0.002

head = np.zeros((11, 1001))

head[0:][0] = 16 # sets the first row to 16
head[0][0:] = 16 # DOESN'T set the first column to 16

for t in time:
    for i in x[1:len(x)-1]:
        head[t+1][i] = head[t][i] + ((dt*k)/(2*Sy)) * (((head[t][i-1]**2) - (2*head[t][i]**2) + (head[t][i+1]**2)) …
Run Code Online (Sandbox Code Playgroud)

python modeling numpy matrix

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

如何通过根据名称而不是索引选择一系列列和行来切片数据框?

这是我在这里提出的问题的后续问题.在那里我学习了a)如何为列做这个(见下文)和b)在R中行和列的选择看起来差别很大,这意味着我不能对行使用相同的方法.

所以假设我有一个像这样的pandas数据帧:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(10, size=(6, 6)),
                  columns=['c' + str(i) for i in range(6)],
                  index=["r" + str(i) for i in range(6)])

    c0  c1  c2  c3  c4  c5
r0   4   2   3   9   9   0
r1   9   0   8   1   7   5
r2   2   6   7   5   4   7
r3   6   9   9   1   3   4
r4   1   1   1   3   0   3
r5   0   8   5   8   2   9
Run Code Online (Sandbox Code Playgroud)

然后我可以通过它们的名称轻松选择行和列,如下所示: …

r subset slice dataframe

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

使用滑块时如何更新直方图?

我想构建正态分布的直方图,并在平均值、标准差和样本量发生变化时更新绘图;类似于这里的帖子。

然而,我对这个update功能很挣扎。在上面的例子中

l, = plot(f(S, 1.0, 1.0))
Run Code Online (Sandbox Code Playgroud)

def update(val):
    l.set_ydata(f(S, sGmax.val, sKm.val))
Run Code Online (Sandbox Code Playgroud)

使用但绘制直方图时必须如何更改?因此,我不确定如何使用返回值plt.hist,将它们正确传递给update,然后相应地更新绘图。有人能解释一下吗?

这是我的代码:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider


def update(val):
    mv = smean.val
    stdv = sstd.val
    n_sample = round(sn.val)
    # what needs to go here? how to replace xxx
    xxx(np.random.normal(mv, stdv, n_sample))
    plt.draw()


ax = plt.subplot(111)
plt.subplots_adjust(left=0.25, bottom=0.25)

m0 = -2.5
std0 = 1
n0 = 1000
n_bins0 = 20

nd …
Run Code Online (Sandbox Code Playgroud)

python slider matplotlib

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

Python 多变量最小二乘法

我有一个需要在 python 中解决的优化问题。总体结构是

def foo(a, b, c, d, e):
    # do something and return one value


def bar(a, b, c, d, e, f, g, h, i, j):
    # do something and return one value


def func():
    return foo(a, b, c, d, e) - bar(a, b, c, d, e, f, g, h, i, j)
Run Code Online (Sandbox Code Playgroud)

我想使用least_squares最小化并将 的值作为列表返回,其中平方差是和f, g, h, i and j之间的最小值。我不知道如何使用这个。foobarleast_squares

我试过这个:

# Initial values f, g, h, i, j
x0 =[0.5,0.5,0.5,0.05,0.5]

# Constraints …
Run Code Online (Sandbox Code Playgroud)

python optimization scipy

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

负载均衡器是否需要负载均衡器?

考虑这样一种情况,我们有一个部署在多个服务器中的 Web 应用程序,并且客户端请求登陆到负载均衡器,负载均衡器又将请求路由到实际服务器。

现在,如果我们有太多请求并发,负载均衡器本身会失败吗?假设我们每秒收到 100 万个请求,这会不会超出单个负载均衡器的处理能力?

我们如何设计(至少在概念上)一个处理此类情况的系统?

load-balancing

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

如何使数据类中的属性只读?

假设我有一个这样的课程:

class C:

    def __init__(self, stuff: int):
        self._stuff = stuff

    @property
    def stuff(self) -> int:
        return self._stuff
Run Code Online (Sandbox Code Playgroud)

然后stuff是只读的:

c = C(stuff=10)
print(c.stuff)  # prints 10
Run Code Online (Sandbox Code Playgroud)

c.stuff = 2
Run Code Online (Sandbox Code Playgroud)

按预期失败

属性错误:无法设置属性

如何使用数据类获得相同的行为?如果我也想拥有一个setter,我可以这样做:

@dataclass
class DC:
    stuff: int
    _stuff: int = field(init=False, repr=False)

    @property
    def stuff(self) -> int:
        return self._stuff

    @stuff.setter
    def stuff(self, stuff: int):
        self._stuff = stuff
Run Code Online (Sandbox Code Playgroud)

但是没有这个@stuff.setter部分我怎么能做到呢?

python python-3.x python-dataclasses

6
推荐指数
2
解决办法
1688
查看次数

Sympy:integrate()奇怪的输出

我只是学习如何使用sympy,我尝试了一个简单的sin函数集成.当参数sin()具有恒定的相位常数时,integrate()无论相位如何,输出都给出相同的值:0

from sympy import *
w = 0.01
phi = 0.3
k1 = integrate(sin(w*x), (x, 0.0, 10.0))
k2 = integrate(sin(w*x + 0.13), (x, 0.0, 10.0))
k3 = integrate(sin(w*x + phi),(x, 0.0, 10.0))
k1, k2, k3

(0.499583472197429, 0, 0)
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下为什么吗?

python sympy

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

Python:当一个数组被转置时,numpy 数组是否链接?

目前我正在开发一个从文本文件中提取测量数据的 python 脚本。我正在使用 iPython Notebook 和 Python 2.7

现在我在使用 numpy 数组时遇到了一些奇怪的行为。我对此没有任何解释。

myArray = numpy.zeros((4,3))
myArrayTransposed = myArray.transpose()

for i in range(0,4):
    for j in range(0,3):
        myArray[i][j] = i+j

print myArray
print myArrayTransposed
Run Code Online (Sandbox Code Playgroud)

造成:

[[ 0.  1.  2.]
 [ 1.  2.  3.]
 [ 2.  3.  4.]
 [ 3.  4.  5.]]
 [[ 0.  1.  2.  3.]
 [ 1.  2.  3.  4.]
 [ 2.  3.  4.  5.]]
Run Code Online (Sandbox Code Playgroud)

因此,无需处理转置数组,该数组中的值就会更新。

这怎么可能?

python arrays pointers numpy

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