小编MSe*_*ert的帖子

numpy.array(list) 很慢

所以我有一个包含 5,000,000 个整数的列表。我想将列表覆盖到 numpy 数组中。我尝试了以下代码:

numpy.array( list )
Run Code Online (Sandbox Code Playgroud)

但速度非常慢。

我对该操作进行了 100 次基准测试,并对列表进行了 100 次循环。没有太大区别。

有什么好主意如何让它更快吗?

arrays performance numpy list

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

切片Dask数据框

我有以下代码,我想在Dask数据帧上进行训练/测试拆分

df = dd.read_csv(csv_filename, sep=',', encoding="latin-1",
                     names=cols, header=0, dtype='str') 
Run Code Online (Sandbox Code Playgroud)

但是当我尝试做像

for train, test in cv.split(X, y):
    df.fit(X[train], y[train])
Run Code Online (Sandbox Code Playgroud)

它因错误而失败

KeyError: '[11639 11641 11642 ..., 34997 34998 34999] not in index'
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python dataframe dask

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

导入错误:无法导入名称 mpl(从 matplotlib 导入 mpl)

我正在尝试运行我几年前编写的使用mplfrom 的代码matplotlib。它曾经运行良好,但现在突然出现错误:

from matplotlib import mpl
ImportError: cannot import name mpl
Run Code Online (Sandbox Code Playgroud)

我正在使用 Python 2.7 和 matplotlib 1.5.2。

python matplotlib importerror python-2.7

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

Python numpy 数组元素不改变值

所以我的 python 代码中遇到了一个问题,我将其归结为:

假设我们有一个函数u

def u(y,t):
    h = float(10) 
    U0 = float(1)
    return U0/h*(y)
Run Code Online (Sandbox Code Playgroud)

和一个数组:

a=np.array([[0]*2]*2)
Run Code Online (Sandbox Code Playgroud)

然后执行以下操作:

a[1][1] = u(1,0)
Run Code Online (Sandbox Code Playgroud)

但尽管等于 仍会a[1][1]返回。0u(1,0)0.1

为什么会发生这种情况以及如何避免这种情况?

python arrays pointers numpy

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

如何使用 pyplot 正确显示图像的红、绿、蓝 (rgb) 通道

我有一个小项目,所以一周前我开始在 Python 上做一些测试。我必须显示 RGB 图像的 3 个通道,但pyplot.imshow()函数显示以下内容:

当前显示

我想显示红色、绿色和蓝色通道,如下所示:

RGB 的红色通道

到目前为止,这是我的代码:

from matplotlib import pyplot as plt
from PIL import Image
import numpy as np

img1 = np.array(Image.open('img1.png'))
figure, plots = plt.subplots(ncols=3, nrows=1)
for i, subplot in zip(range(3), plots):
    temp = np.zeros(img1.shape, dtype='uint8')
    temp = img1[:,:,i]
    subplot.imshow(temp)
    subplot.set_axis_off()
plt.show()
Run Code Online (Sandbox Code Playgroud)

我不在任何笔记本上工作。相反,我在 PyCharm 中工作。我读了这篇文章:24739769。我查了一下,img1.dtype是的uint8,所以我不知道如何展示我想要的东西。

python rgb numpy image matplotlib

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

python - 在创建新的transformdict时在参数dict上执行transform函数

我已经读过这个很酷的新词典类型,即transformdict

我想在我的项目中使用它,通过使用常规dict初始化一个新的转换字典:

tran_d = TransformDict(str.lower, {'A':1, 'B':2})
Run Code Online (Sandbox Code Playgroud)

哪个成功但是当我运行时:

tran_d.keys()
Run Code Online (Sandbox Code Playgroud)

我明白了:

['A', 'B']
Run Code Online (Sandbox Code Playgroud)

在创建新的转换字典时,您如何建议在参数(常规)字典上执行转换函数?为了清楚起见,我想要以下内容:

tran_d.keys() == ['a', 'b']
Run Code Online (Sandbox Code Playgroud)

python dictionary

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

格式化dict键:AttributeError:'dict'对象没有属性'keys()'

在字符串中格式化dict键的正确方法是什么?

当我这样做:

>>> foo = {'one key': 'one value', 'second key': 'second value'}
>>> "In the middle of a string: {foo.keys()}".format(**locals())
Run Code Online (Sandbox Code Playgroud)

我期待的是:

"In the middle of a string: ['one key', 'second key']"
Run Code Online (Sandbox Code Playgroud)

我得到了什么:

Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    "In the middle of a string: {foo.keys()}".format(**locals())
AttributeError: 'dict' object has no attribute 'keys()'
Run Code Online (Sandbox Code Playgroud)

但正如你所看到的,我的dict有键:

>>> foo.keys()
['second key', 'one key']
Run Code Online (Sandbox Code Playgroud)

python methods dictionary string-formatting attributeerror

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

为什么用pytz中的tzinfo创建日期时间会显示奇怪的时间偏移?

有人可以解释一下为什么我不能得到相同的结果吗?

import datetime,pytz
var1 = datetime.datetime(2017,10,25,20,10,50,tzinfo=pytz.timezone("Europe/Athens")))
print(var1)
Run Code Online (Sandbox Code Playgroud)

此代码的输出是: 2017-10-25 20:10:50+01:35

import datetime,pytz
var1 = datetime.datetime(2017,10,25,20,10,50)
var1 = pytz.timezone("Europe/Athens").localize(var1)
print(var1)
Run Code Online (Sandbox Code Playgroud)

此代码的输出是: 2017-10-25 20:10:50+03:00

我的问题是为什么他们有不同的时区(1:35和3:00).我知道第二个代码是真的,因为我的UTC是3:00.但是你能告诉我为什么我要进入1:35第一个吗?

python timezone datetime pytz

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

使用Python3 C API添加到内置函数

我正在寻找使用 Python3 C API 来添加内置函数。我这样做只是为了帮助我熟悉 Python C API 的练习。这个问题的答案很好地解释了为什么人们可能不想这样做。无论如何,我想foo向Pythonbuiltins模块添加一个函数。

这是我到目前为止所做的( foo.c):

#include <Python.h>
#include <stdio.h>

static PyObject*
foo(PyObject *self, PyObject *args){
    printf("foo called");
    return Py_None;
}

char builtin_name[] = "builtins";
char foo_name[] = "foo";
char foo_doc[] = "foo function";

static PyMethodDef foo_method = {foo_name, foo, METH_NOARGS, foo_doc};

PyMODINIT_FUNC
PyInit_foo(void){
    PyObject *builtin_module = PyImport_ImportModule(builtin_name);
    PyModule_AddFunctions(builtin_module, &foo_method);
    return builtin_module;
}
Run Code Online (Sandbox Code Playgroud)

我将其放置在Modules/Python 源目录中的目录中。

python python-c-api python-3.x

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

numba nopython模式"Undefined variable'$ 313.3'"

这是我从图像构造最小树的代码(f是由scipy提供的图像)

这是我写的缝纫雕刻计划的基础.

此代码段在普通python中按预期工作.当我@numba.jit没有使用时nopython=True,它也可以工作(性能提高约200%!),但这是在对象模式下.

当我尝试使用nopython=True模式时,它不会编译,我收到错误:

Failed at nopython (nopython frontend)
Undefined variable '$313.3'
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这不会编译,因为我没有看到任何可能未定义的东西.

from numba import jit
from scipy import misc
import numba

f = misc.face()
@jit(nopython=True)
def explorethisx(inar, x):
    places = []
    places.append((x,0))
    x1,y1 = x,0
    s = numba.int64(0)
    co = 0
    #for _ in range( 799):

    while co != numba.int16(799):
        co += 1
        a1,a2,a3 = 999,999,999
        a1 = inar[y1 + 1][x1-1][1]
        a2 = inar[y1 + 1][x1][1]
        a3 = inar[y1 + …
Run Code Online (Sandbox Code Playgroud)

python numpy numba

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