小编leo*_*lds的帖子

numpy从2d数组中减去/添加1d数组

我有以下2D数组:

a = array([[ 1,  2,  3],
           [ 4,  5,  6],
           [ 7,  8,  9],
           [10, 11, 12],
           [13, 14, 15]])
Run Code Online (Sandbox Code Playgroud)

和另一个1D阵列:

b = array([ 1,  2,  3,  4,  5])
Run Code Online (Sandbox Code Playgroud)

然后我想计算类似的东西

c = a - b
Run Code Online (Sandbox Code Playgroud)

旨在获得:

c = array([[0, 1,  2],
           [2, 3,  4],
           [4, 5,  6],
           [6, 7,  8],
           [8, 9, 10]])
Run Code Online (Sandbox Code Playgroud)

但我得到错误信息:

Traceback (most recent call last):
  Python Shell, prompt 79, line 1
ValueError: operands could not be broadcast together with shapes (5,3) (5,)
Run Code Online (Sandbox Code Playgroud)

我阅读了广播规则,但没有更明智.我可以使用for循环或类似方法进行解决,但应该有一个直接的方法.谢谢

python arrays numpy

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

当子类化 DataFrame 时如何为“loc”编写包装方法

我正在尝试为 的子类编写一个包装方法DataFrame

class SubDataFrame(DataFrame):
   ...

a = SubDataFrame()
b = a.loc[row, column]
Run Code Online (Sandbox Code Playgroud)

在最后一行中,我想在处理超类中的元数据SubDataFrame之前或之后在类中单独处理元数据。loc

我不知道如何实现这个符号,因为如果我只是定义

def loc(self, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

SubDataFrame括号中的方法loc[]不起作用。( AttributeError: instancemethod has no attribute getitem)。

我找不到关于如何实现这一点的文档。

python subclass pandas

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

matplotlib只在x轴上没有周末的工作日与plot_date

我有以下持久性问题:

以下代码应绘制一条直线:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
d = pd.date_range(start="1/1/2012", end="2/1/2012", freq="B")
v = np.linspace(1,10,len(d))
plt.plot_date(d,v,"-")
Run Code Online (Sandbox Code Playgroud)

但我得到的只是一条参差不齐的线,因为"​​plot_date"以某种方式用周末填写"d"中的日期.

有没有办法强制matplotlib采取我的日期(仅工作日),而不是提交周末日期?

锯齿状线而不是直线

>>>d
DatetimeIndex(['2012-01-02', '2012-01-03', '2012-01-04', '2012-01-05',
               '2012-01-06', '2012-01-09', '2012-01-10', '2012-01-11',
               '2012-01-12', '2012-01-13', '2012-01-16', '2012-01-17',
               '2012-01-18', '2012-01-19', '2012-01-20', '2012-01-23',
               '2012-01-24', '2012-01-25', '2012-01-26', '2012-01-27',
               '2012-01-30', '2012-01-31', '2012-02-01'],
               dtype='datetime64[ns]', freq='B')
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

当结果依赖于前一个单元格时,如何将函数应用于数组的每个元素

我有一个数组:

a = np.array([2,3,5,8,3,5])
Run Code Online (Sandbox Code Playgroud)

什么是计算数组的最有效(矢量化)方法,其中每个结果元素是(伪代码):

result[0] = a[0]
for i > 0:
    result[i] = result[i-1] + (a[i] - result[i-1]) * factor
Run Code Online (Sandbox Code Playgroud)

我可以使用以下低效代码(因子= 0.5)执行此操作:

a = np.array([2,3,5,8,3,5])
result = np.array([a[0]])
for k in a[1:]:
   result = np.append(result, result[-1]+(k-result[-1])*0.5)
Run Code Online (Sandbox Code Playgroud)

这种阻尼功能的结果是:

array([ 2.,  2.5,  3.75,  5.875,  4.4375,  4.71875])
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

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

标签 统计

python ×4

arrays ×2

numpy ×2

matplotlib ×1

pandas ×1

subclass ×1