小编use*_*r89的帖子

numpy:将2D数组乘以1D数组

我们假设有一个2D向量数组:

v = np.array([ [1, 1], [1, 1], [1, 1], [1, 1]])
v.shape = (4, 2)
Run Code Online (Sandbox Code Playgroud)

还有一系列标量:

s = np.array( [2, 2, 2, 2] )
s.shape = (4,)
Run Code Online (Sandbox Code Playgroud)

我想结果:

f(v, s) = np.array([ [2, 2], [2, 2], [2, 2], [2, 2]])
Run Code Online (Sandbox Code Playgroud)

现在,执行v*s是一个错误.那么,实施最有效的方法是f什么?

python arrays numpy

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

`pickle`:又一个`ImportError:没有名为 my_module 的模块`

MyClass我有一个在 中定义的类my_moduleMyClass有一个方法pickle_myself可以腌制相关类的实例:

def pickle_myself(self, pkl_file_path):
    with open(pkl_file_path, 'w+') as f:
        pkl.dump(self, f, protocol=2)
Run Code Online (Sandbox Code Playgroud)

我已经确定那my_module是在PYTHONPATH. 在解释器中,执行__import__('my_module')效果很好:

>>> __import__('my_module')
<module 'my_module' from 'A:\my_stuff\my_module.pyc'>
Run Code Online (Sandbox Code Playgroud)

然而,当最终加载文件时,我得到:

File "A:\Anaconda\lib\pickle.py", line 1128, in find_class
  __import__(module)
ImportError: No module named my_module
Run Code Online (Sandbox Code Playgroud)

我已经确定的一些事情:


编辑——重现错误的玩具示例:

该示例本身分布在一堆文件中。

首先,我们有模块ball(存储在名为 的文件中ball.py):

class Ball():
    def __init__(self, ball_radius):
        self.ball_radius …
Run Code Online (Sandbox Code Playgroud)

python windows pickle dill

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

`pip install pyside`冻结在Linux上?

这是终端输出:

alien@alien-linux:~$ pip install pyside
Collecting pyside
  Using cached PySide-1.2.4.tar.gz
Building wheels for collected packages: pyside
  Running setup.py bdist_wheel for pyside
Run Code Online (Sandbox Code Playgroud)

似乎没有什么事情发生在我刚刚到达的地方,我已经尝试等待20-25分钟.任何想法为什么会出现这种情况?

根据这个问题的答案,在Ubuntu上安装pyside的推荐方法是通过官方存储库,但如果我这样做,我得到ImportError(没有找到模块),如果我尝试类似的东西import pyside.

python qt pyside

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

将迭代器作为参数传递给函数是反模式吗?

假设我有一个字符串,我在它的字符上创建一个迭代器(可循环、可查看):

let hello = "hello";
let mut iterator = hello.chars().cycle().peekable;
Run Code Online (Sandbox Code Playgroud)

我想弄清楚 的类型iterator是什么,所以我故意引入了一个错误:

let mut iterator: usize = hello.chars().cycle().peekable;

然后编译器告诉我右侧的类型是:

std::iter::Peekable<std::iter::Cycle<std::str::Chars<'_>>>
Run Code Online (Sandbox Code Playgroud)

哇,真是一口。如果我像这样定义一个函数:

fn foobar(x: std::iter::Peekable<std::iter::Cycle<std::str::Chars<'_>>>){
    // snip
}
Run Code Online (Sandbox Code Playgroud)

我收到这样的错误:

error: underscore lifetimes are unstable (see issue #44524)
Run Code Online (Sandbox Code Playgroud)

那么,如果我想将迭代器传递给函数,我应该怎么做呢?或者,这是我应该避免的事情吗?

rust

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

特征能否保证某些类型属性(例如向量)为非空?

想象一下我有这样的功能:

fn min_max_difference(row: &Vec<u32>) -> u32 {
    let mut min_elem: u32 = row[0];
    let mut max_elem: u32 = min_elem;

    for &element in row.iter().skip(1) {
        if element < min_elem {
            min_elem = element;
        } else if element > max_elem {
            max_elem = element;
        }
    }

    result = max_elem - min_elem;
}

fn execute_row_operation(row: &Vec<u32>, operation: Fn(&Vec<u32>) -> u32) -> Option<(u32, u32)> {
    let mut result = None;

    if row.len() > 0 {
        result = operation(row);
    }

    result
}
Run Code Online (Sandbox Code Playgroud)

请注意,if块 …

traits rust

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

Python多处理:如何在出错后彻底退出?

我正在编写一些使用该multiprocessing模块的代码.但是,由于我是新手,经常发生的是弹出一些错误,停止主应用程序.

但是,应用程序的子项仍然在运行,我pythonw在任务管理器列表中获得了很长的运行进程列表.

发生错误后,我还能做些什么来确保所有子进程都被杀死?

multiprocessing python-2.7

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

截至2014年6月,应该考虑使用哪些工具来提高Python代码性能?

我用Python编写了一个小型的科学实验,现在我需要考虑优化这段代码.在分析之后,我应该考虑哪些工具来提高性能.根据我的理解,以下内容不起作用:

Psyco:过时了(不支持Python 2.7)

Pyrex:最后更新是在2010年

Pypy: NumPy存在问题

除了编写C模块然后以某种方式将它们与Python接口(例如,使用Cython)之外,现在还有哪些选项?

python numpy

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

numpy logical_and:意外行为

我们假设我给你以下布尔数组:

b1 = np.array([ True,  True, False,  True ])
b2 = np.array([ True, False, False,  True ])
b3 = np.array([ True,  True,  True, False ])
Run Code Online (Sandbox Code Playgroud)

如果你们AND在一起,你会得到以下结果:

b4 = np.array([ True, False, False, False ])
Run Code Online (Sandbox Code Playgroud)

对?如果没有,请解释.如果我们同意,那么,为什么会发生以下情况呢?

>>> np.logical_and(b1, b2, b3)
array([ True, False, False,  True ])
Run Code Online (Sandbox Code Playgroud)

np.logical_and(np.logical_and(b1, b2), b3) 确实给出了预期的结果.

python numpy

3
推荐指数
2
解决办法
1492
查看次数

使用win32api获取Windows上的命名管道列表?

您可以让用户安装pipelist实用程序,然后处理以下输出:

subprocess.check_output("pipelist", universal_newlines=True)
Run Code Online (Sandbox Code Playgroud)

使用C#,还可以执行以下操作:

String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
Run Code Online (Sandbox Code Playgroud)

有没有办法使用pywin32/ 复制这个C#解决方案win32api

windows winapi pywin32 python-3.x

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

是否应该尽量减少应用程序创建的命令池数量?

假设有一个队列系列支持表面和图形的呈现。创建一个处理演示和图形的单个命令池是更好(由于技术原因),还是创建两个命令池更好:一个应用程序仅用于图形(即使它可以用于演示)和另一个应用程序将仅用于演示(即使它可以用于图形)?

本质上,是否应该最小化与特定队列系列相关的命令池的数量?或者可以根据需要创建尽可能多的命令池吗?更一般地(无论命令池与哪个队列家族相关联),应用​​程序是否应该最小化它创建的命令池数量?

编辑:我在这篇文章的初始版本中写了“队列”而不是“命令池”。这已被修复。

vulkan

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