小编Eso*_*ack的帖子

从数组中获取大小为n的所有组合的算法(Java)?

现在我正在尝试编写一个带有数组和整数n的函数,并给出每个大小为n的组合的列表(所以是int数组的列表).我能够使用n个嵌套循环编写它,但这仅适用于特定大小的子集.我无法弄清楚如何推广它适用于任何大小的组合.我想我需要使用递归?

这是3个元素的所有组合的代码,我需要一个适用于任意数量元素的算法.

import java.util.List;
import java.util.ArrayList;

public class combinatorics{
    public static void main(String[] args) {

        List<int[]> list = new ArrayList<int[]>();
        int[] arr = {1,2,3,4,5};
        combinations3(arr,list);
        listToString(list);
    }

    static void combinations3(int[] arr, List<int[]> list){
        for(int i = 0; i<arr.length-2; i++)
            for(int j = i+1; j<arr.length-1; j++)
                for(int k = j+1; k<arr.length; k++)
                    list.add(new int[]{arr[i],arr[j],arr[k]});
    }

    private static void listToString(List<int[]> list){
        for(int i = 0; i<list.size(); i++){ //iterate through list
            for(int j : list.get(i)){ //iterate through array
                System.out.printf("%d ",j);
            }
        System.out.print("\n");
        } …
Run Code Online (Sandbox Code Playgroud)

java combinations combinatorics

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

Pydantic 验证器删除空白字符串?

我有以下 Pydantic 模型:

class Report(BaseModel):
    id: int
    name: str
    grade: float = None
    proportion: float = None

    @validator('*', pre=True)
    def blank_strings(cls, v):
        print(v)
        if v == "":
            return None
        return v
Run Code Online (Sandbox Code Playgroud)

我的目标是能够将空字符串视为空值,但它似乎不起作用。

Report(id=5,name="Steve",grade=0.5) 创建一个实例,其中proportion=Nonebut... Report(id=5,name="Steve",grade=0.5,proportion="")抛出 error value is not a valid float (type=type_error.float)。我怎样才能得到与第一种情况相同的结果?

python pydantic fastapi

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

试图理解 PyAudio 错误:[Errno -9981] 输入溢出

我正在尝试用 PyAudio 做一个声音处理项目,但有时我会收到这个错误,我不明白为什么。

以下代码播放在我的笔记本电脑麦克风上听到的音频,然后暂停 3 秒钟,然后继续。这段代码运行良好,如果我鼓掌,在暂停期间,暂停结束后音频不会播放,这使得缓冲区填满后任何额外的音频都丢失了。

但是如果我将 CHUNK 减少到 20 这样的低数字,一旦它暂停一秒钟就会抛出错误

  File "C:\Anaconda3\lib\site-packages\pyaudio.py", line 608, in read
    return pa.read_stream(self._stream, num_frames, exception_on_overflow)
OSError: [Errno -9981] Input overflowed
Run Code Online (Sandbox Code Playgroud)

因此,如果音频在暂停期间由于(我认为)缓冲区填满而不会引发错误而丢失,那么当我减少每个缓冲区的帧数时为什么会出现错误?

代码:

import pyaudio
import time

# initialize stream parameters
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
CHUNK = 1024

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                output=True,
                frames_per_buffer=CHUNK)


x = 1
while True:
    data = stream.read(CHUNK)
    stream.write(data)

    x=x%100 + 1
    if x == 100:
        print(time.time())
        time.sleep(3)
Run Code Online (Sandbox Code Playgroud)

编辑 - 我想我通过将此参数添加到读取中解决了这个问题: …

python audio stream portaudio pyaudio

8
推荐指数
0
解决办法
1305
查看次数

如何在带有 if __name__='__main__' 块的 Python3 中使用相对导入?

我正在制作一个包,这个包中的模块在if __name__=='__main__':块中包含用于测试目的的代码。但是我尝试在这些模块中使用相对导入会导致错误。

我已经阅读了这个帖子和其他十亿人: 第 10 亿次的相对进口

在将其标记为重复之前,如果我想做的事情在 Python3 中是不可能的,那么我的问题是为什么它可以在 Python2 中工作,以及是什么促使决定在 Python3 中如此麻烦?


这是我的示例 Python 项目:

mypackage
- module1.py
- module2.py
- __init__.py
Run Code Online (Sandbox Code Playgroud)

__init__.py并且module2.py是空的

module1.py 包含:

import module2

# module1 contents

if __name__=="__main__":
    # Some test cases for the contents of this module
    pass
Run Code Online (Sandbox Code Playgroud)

这在 Python2 中工作正常。我可以从我计算机上任何位置的其他项目导入 module1,我也可以直接运行 module1 并if运行块中的代码。

但是,这种结构在 Python3 中不起作用。如果我尝试在其他地方导入模块,它会失败:

>>> from mypackage import module1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\_MyFiles\Programming\Python Modules\mypackage\module1.py", line …
Run Code Online (Sandbox Code Playgroud)

python relative-path python-import python-3.x python-packaging

7
推荐指数
2
解决办法
2613
查看次数

Pandas pd.cut 关于时间戳 - “ValueError:垃圾箱必须单调增加”

我正在尝试将时间序列数据分割成带标签的段,如下所示:

import pandas as pd
import numpy as np

# Create example DataFrame of stock values
df = pd.DataFrame({
    'ticker':np.repeat( ['aapl','goog','yhoo','msft'], 25 ),
    'date':np.tile( pd.date_range('1/1/2011', periods=25, freq='D'), 4 ),
    'price':(np.random.randn(100).cumsum() + 10) })

# Cut the date into sections 
today = df['date'].max()
bin_edges = [pd.Timestamp.min, today - pd.Timedelta('14 days'), today - pd.Timedelta('7 days'), pd.Timestamp.max]
df['Time Group'] = pd.cut(df['date'], bins=bin_edges, labels=['history', 'previous week', 'this week'])
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误,尽管bin_edges似乎确实是单调增加的。

Traceback (most recent call last):
  File "C:\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3267, in run_code
    exec(code_obj, self.user_global_ns, …
Run Code Online (Sandbox Code Playgroud)

python datetime binning pandas

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

PyCharm没有为类插入文档字符串存根吗?

我有以下代码:

class Note:
    def __init__(self, note=None, duration=None, start_time=None):
        self.note = note
        self.duration = duration
        self.start_time = start_time
Run Code Online (Sandbox Code Playgroud)

我想根据NumPy文档字符串样式为该类生成文档字符串,但它不会自动完成。我在下面的设置中选择了NumPy格式File | Settings | Tools | Python Integrated Tools

自动完成适用于def __init__()。当我在其后开始新行并键入时,'''将自动插入以下内容:

'''

Parameters
----------
note :
duration :
start_time :
'''
Run Code Online (Sandbox Code Playgroud)

但是,当我在下面执行相同的操作时,class Note:它不会执行该操作。我正在使用PyCharm 2017.3.3

python docstring stub pycharm

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

Matplotlib sharex对具有不同x值的数据?

如何修改下面的代码,使图跨所有6个x轴值,并且在df2的条形的A,C,F处只有空白点?

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame({'x':['A','B','C','D','E','F'],'y1':np.random.rand(6)})
df2 = pd.DataFrame({'x':['B','D','E'],'y2':np.random.rand(3)})

fig,axes = plt.subplots(2, sharex='all')

sns.barplot(x='x',y='y1',data=df,ax=axes[0])
sns.barplot(x='x',y='y2',data=df2,ax=axes[1])
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

python matplotlib python-3.x pandas seaborn

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

创建 QApplication 后如何导入 QtWebEngineWidgets

我正在尝试解决这个错误:

必须在创建 QCoreApplication 实例之前导入 QtWebEngineWidgets。

这是不言自明的,但我试图制作一个在 iPython 中使用的 GUI,它可以在创建 QApplication 实例后导入。

如何解决此错误并创建一个 PyQt5 GUI,该 GUI 可以显示 HTML 页面,并且即使在用户使用 QApplication 实例(例如通过 matplotlib)后也能够导入?

我尝试了这个但仍然得到相同的错误:

from PyQt5 import QtWidgets
import seaborn as sns
sns.boxplot([1],[1])
QtWidgets.QApplication.instance().quit()
from PyQt5 import QtWidgets, QtWebEngineWidgets
Run Code Online (Sandbox Code Playgroud)

python ipython importerror pyqt5 qtwebengine

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

React 应用程序中 src 文件夹的 Webpack 别名?

我想使用绝对导入来导入相对于根src目录的任何文件。这是我的文件夹结构:

\n\n
example/\n\xe2\x94\xa3 public/\n\xe2\x94\x83 \xe2\x94\xa3 index.html\n\xe2\x94\xa3 src/\n\xe2\x94\x83 \xe2\x94\xa3 components/\n\xe2\x94\x83 \xe2\x94\xa3 \xe2\x94\xa3 App.css\n\xe2\x94\x83 \xe2\x94\xa3 \xe2\x94\xa3 App.js\n\xe2\x94\x83 \xe2\x94\xa3 \xe2\x94\x97 Todo.js\n\xe2\x94\x83 \xe2\x94\xa3 api.js\n\xe2\x94\x83 \xe2\x94\xa3 history.js\n\xe2\x94\x83 \xe2\x94\x97 index.js\n\xe2\x94\xa3 craco.config.js\n\xe2\x94\xa3 jsconfig.json\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的配置

\n\n
var path = require("path");\nmodule.exports = {\n  resolve: {\n    alias: {\n      src: path.resolve(__dirname, "src"),\n    },\n  },\n};\n
Run Code Online (Sandbox Code Playgroud)\n\n

import Todo from "src/components/Todo"

\n\n

但我收到这个错误。

\n\n

Module not found: Can\'t resolve \'src/components/Todo\' in \'C:\\_MyFiles\\Programming\\example\\src\\components\'

\n\n
\n\n

但是,如果我更改配置并导入以引用 src 下的子文件夹,这样它就可以工作......

\n\n
var path = require("path");\nmodule.exports = {\n  resolve: {\n    alias: {\n      components: path.resolve(__dirname, …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs webpack create-react-app

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

如何显示源映射的 JavaScript 错误堆栈跟踪而不是缩小代码?

我有一个create-react-appWeb 应用程序部署到生产环境,启用了源映射并将错误记录到控制台。我想调试下面显示的错误,但它给了我缩小的 JS 文件的堆栈跟踪。

如何将堆栈跟踪映射到我的原始代码?它似乎已经部分地做到了这一点,因为将鼠标悬停xhr.js:30在右上角链接到node_modules来自 的一些代码axios,但其余链接到缩小的文件。

此错误仅发生在生产中,我无法在不知道代码中的哪一行导致它的情况下进行调试。

在此处输入图片说明

javascript google-chrome-devtools webpack create-react-app

5
推荐指数
0
解决办法
139
查看次数