小编Ger*_*ges的帖子

在python中读取图像

我试图png在python中读取图像.该imread函数scipy弃用,他们建议使用imageio图书馆.

但是,我宁愿限制我的外部库的使用 scipy,numpymatplotlib图书馆.因此,使用imageioscikit image不是我的好选择.

python中是否有任何方法scipy,numpy或者matplotlib读取图像,这些方法都没有被弃用?

python image scipy

22
推荐指数
4
解决办法
6万
查看次数

keras 顺序模型中的多个输出

当我阅读Keras 序列模型代码时,我发现它只允许模型中任何定义的层使用单个输出Sequential。我知道如何使用函数式 API(Model类)来做到这一点。

但是,我不明白为什么该Sequential模型仅限于具有单个输出的层。执行此类约束是否存在设计限制?

python keras tensorflow

8
推荐指数
1
解决办法
7177
查看次数

pytest输出结果在pycharm内乱码

我在 pycharm 中使用 pytest,但是当我运行测试时,我在 pycharm 控制台中得到测试和结果乱码,这是一个示例输出:

============================= test session starts ==============================
platform linux -- Python 3.6.6, pytest-4.0.1, ....
cachedir: .pytest_cache
rootdir: ....
collecting ... collected 14 items

tests/test_ops.py::test_layer 
tests/test_ops.py::test_layer_with_input_shape 
tests/test_ops.py::test_layer_with_batch_input 
tests/test_ops.py::test_layer_with_batch_size_and_input_shape 
tests/test_ops.py::test_rshift_input_layer 
tests/test_ops.py::test_rshift_input_list 
tests/test_ops.py::test_rshift_two_layers 
tests/test_ops.py::test_rshift_input_and_two_layers 
tests/test_ops.py::test_rshift_input_and_deferred_layer 
tests/test_ops.py::test_rshift_input_list_and_deferred_layer 
tests/test_ops.py::test_rshift_deferred_layer_to_layer 
tests/test_ops.py::test_rshift_layer_to_deferred_layer 
tests/test_ops.py::test_rshift_layer_to_int 
tests/test_ops.py::test_rshift_layer_to_int_with_inputs 

========================== 14 passed in 1.27 seconds ===========================PASSED                                     [  7%]PASSED                    [ 14%]Tensor_rshift_layer
PASSED                    [ 21%]Tensor_rshift_layer
PASSED     [ 28%]Tensor_rshift_layer
PASSED                        [ 35%]Tensor_rshift_layer
PASSED                         [ 42%]list_rshift_layer
PASSED                         [ 50%]layer_rshift_layer
PASSED               [ 57%]Tensor_rshift_layer
PASSED           [ 64%]layer_rshift_layer
Tensor_rshift_layer
PASSED      [ 71%]layer_rshift_layer
list_rshift_layer
PASSED            [ …
Run Code Online (Sandbox Code Playgroud)

python pytest pycharm

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

无法导入在新的Conda环境中安装的软件包

我正在尝试在HPC服务器上创建自己的conda python环境,并且正在发生一些非常奇怪的事情。

问题

创建新的conda环境后,似乎python在该环境中看不见自己,在使用基本环境...因此,我无法使用在新环境中安装的软件包,但可以在基本环境中看到它们。 。

这是我所做的

我按照以下步骤安装我的环境:

$ conda create -n niml pip python=3.6.5
$ source activate niml
(niml) $ conda install -c conda-forge luigi
Run Code Online (Sandbox Code Playgroud)

然后检查安装的软件包:

(niml) $ conda list
Run Code Online (Sandbox Code Playgroud)

这是我得到的非常基本的环境:

# Name                    Version                   Build  Channel
botocore                  1.10.61                    py_0    conda-forge
ca-certificates           2018.4.16                     0    conda-forge
certifi                   2018.4.16                py36_0    conda-forge
docutils                  0.14                     py36_0    conda-forge
jmespath                  0.9.3                      py_1    conda-forge
libedit                   3.1.20170329         h6b74fdf_2
libffi                    3.2.1                hd88cf55_4
libgcc-ng                 7.2.0                hdf63c60_3
libstdcxx-ng              7.2.0                hdf63c60_3
lockfile                  0.12.2                     py_1    conda-forge
luigi                     2.7.6                    py36_0    conda-forge
ncurses                   6.1                  hf484d3e_0
openssl …
Run Code Online (Sandbox Code Playgroud)

python virtualenv python-3.x anaconda conda

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

python SciPy curve_fit with np.exp 返回 pcov = inf

我正在尝试使用 scipy.optimize.curve_fit 优化指数拟合。但结果并不好。我的代码是:

def func(x, a, b, c):
  return a * np.exp(-b * x) + c

# xdata and data is obtain from another dataframe and their type is nparray

xdata =[36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70 ,71,72]
ydata = [4,4,4,6,6,13,22,22,26,28,38,48,55,65,65,92,112,134,171,210,267,307,353,436,669,669,818,1029,1219,1405,1617,1791,2032,2032,2182,2298,2389]

popt, pcov = curve_fit(func, xdata, ydata)
plt.plot(xdata, func(xdata, *popt), 'r-', label='fit: a=%5.3f, b=%5.3f, c=%5.3f' % tuple(popt))

plt.scatter(xdata, ydata, s=1)
plt.show()
Run Code Online (Sandbox Code Playgroud)

然后我得到这样的结果:

在此输入图像描述

结果表明:

pcov = [[inf inf inf] [inf inf inf] [inf inf inf]]
popt = [1  1  611.83784]
Run Code Online (Sandbox Code Playgroud)

我不知道如何让我的曲线很好地拟合。你能打招呼吗?谢谢你!

python exponential scipy-optimize

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

经过太多分歧后,Python会变为0.0

所以,我有以下代码:

    half= 1/2.0
    print(half)
    for x in range(1,1075):
        half=half/2.0
        print(half)
Run Code Online (Sandbox Code Playgroud)

但是在循环的最后部分,python决定一半现在是0.0

    1.265e-321
    6.3e-322
    3.16e-322
    1.6e-322
    8e-323
    4e-323
    2e-323
    1e-323
    5e-324
    0.0
Run Code Online (Sandbox Code Playgroud)

我达到了python的限制吗?我是否需要安装一个包装才能更远?我不确定为什么会发生这种情况,但我认为python刚刚达到极限

python division python-3.x

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

计算系列开始/结束时的零个数

我有一个这样的系列:

s = pd.Series([0, 0, 0, 1, 2, 3])
s
Out[00]: 
0    0
1    0
2    0
3    1
4    2
5    0
dtype: int64
Run Code Online (Sandbox Code Playgroud)

我想计算该系列中开始和尾随零的数目。所以在这种情况下,我应该以3开始,因为在第一个非零数字之前有3个零,而在尾随零是1,因为在最后一个非零之后的序列尾部有一个零。

我到目前为止所做的

到目前为止,我的解决方案是使用累计和

sum(s.cumsum() == 0) # begenning
np.sum(np.cumsum(s.values[::-1]) == 0) # trailing
Run Code Online (Sandbox Code Playgroud)

但这对于非常大的序列(尤其是尾随零位计算)而言非常慢,我需要一种替代方法。

python series pandas

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

python numpy 开始和结束值之间的指数间隔样本

numpy.linspace 在开始值和结束值之间生成均匀间隔的浮点样本。

print (numpy.linspace(0.0, 1.0, num=9))

# [0 0.125 0.25 0.375 0.5  0.625 0.75  0.875 1]

print (numpy.linspace(9000.0, 1000.0, num=9))

# [9000. 8000. 7000. 6000. 5000. 4000. 3000. 2000. 1000.]
Run Code Online (Sandbox Code Playgroud)

如何在开始值和结束值之间生成指数间隔的样本?


例如,2的幂:

[0. 0.016 0.0625 0.141 0.25 0.391 0.562 0.766 1.]
Run Code Online (Sandbox Code Playgroud)

感谢您的任何建议。

python numpy

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

获取具有元类的类的名称

假设我定义一个A带有元类的类,如下所示:

class Meta(type):
    pass

class A(metaclass=Meta):
    pass
Run Code Online (Sandbox Code Playgroud)

然后,当我尝试访问类的名称时,A我得到元类的名称:

A.__class__.__name__
#  'Meta'
Run Code Online (Sandbox Code Playgroud)

但是,它不应该给我A,我定义的类吗?

注意:我尝试使用A.__mro__[0].__name__,它确实给了我A,但我仍然很困惑为什么A.__class__给我元类名称。有人对此有解释吗?

python metaclass python-3.x

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

使用装饰器消除方法中对 if 语句的需要

我有一个类,它存储文件中的一些数据,但有时该文件不存在。

该类提供了多种方法来对数据进行计算,但如果没有找到数据,所有这些方法都会引发错误。

这是类和其中一种方法的示例:

class A:
    def __init__(self, file_name):
        if isfile(file_name):
            with open(file_name) as f:
                self.data = json.load(f)
        else:
            self.data = None

   def get_something(self):
       if self.data is None:
          raise ValueError('no data')

       return data['a'] + data['b']
Run Code Online (Sandbox Code Playgroud)

问题 如何摆脱每个类方法中的 if 语句。有没有办法在类或方法级别使用装饰器,这使得它看起来比分散的 if 语句更好?

python metaclass decorator

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