小编Nic*_*mer的帖子

Matplotlib透明线图

我正在matplotlib中绘制两个相似的轨迹,我想绘制具有部分透明度的每条线,以便红色(绘制的第二个)不会遮挡蓝色.

替代文字

编辑:这是透明线条的图像.

替代文字

python matplotlib

112
推荐指数
3
解决办法
12万
查看次数

Python:元组/字典作为键,选择,排序

假设我有大量不同颜色的水果,例如24个蓝色香蕉,12个青苹果,0个蓝色草莓等.我想用Python中的数据结构组织它们,以便于选择和排序.我的想法是将它们放入一个以元组为键的字典中,例如,

{ ('banana',    'blue' ): 24,
  ('apple',     'green'): 12,
  ('strawberry','blue' ): 0,
  ...
}
Run Code Online (Sandbox Code Playgroud)

甚至是字典,例如,

{ {'fruit': 'banana',    'color': 'blue' }: 24,
  {'fruit': 'apple',     'color': 'green'}: 12,
  {'fruit': 'strawberry','color': 'blue' }: 0,
  ...
}
Run Code Online (Sandbox Code Playgroud)

例如,我想检索所有蓝色水果或所有颜色的香蕉的列表,或者通过水果的名称对该字典进行排序.有没有办法以干净的方式做到这一点?

很可能是以元组为键的字典不是处理这种情况的正确方法.

欢迎所有建议!

python select dictionary tuples key

95
推荐指数
4
解决办法
13万
查看次数

如何从Python函数调用中捕获stdout输出?

我正在使用一个对象做某事的Python库

do_something(my_object)
Run Code Online (Sandbox Code Playgroud)

并改变它.这样做时,它会向stdout打印一些统计信息,我想抓住这些信息.适当的解决方案是改变do_something()以返回相关信息,

out = do_something(my_object)
Run Code Online (Sandbox Code Playgroud)

但在开始讨论do_something()这个问题之前还需要一段时间.作为一种解决方法,我考虑解析do_something()对stdout的任何写入.

如何在代码中的两点之间捕获stdout输出,例如,

start_capturing()
do_something(my_object)
out = end_capturing()
Run Code Online (Sandbox Code Playgroud)

python stdout capture

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

apt-get install tzdata noninteractive

当我尝试

apt-get install -y tzdata
Run Code Online (Sandbox Code Playgroud)

显示选择时区的命令行选项.我试图在脚本中使用它来进行一些设置,如何在没有用户输入的情况下运行apt-get?

我知道要重新配置我能做的tzdata

echo "America/New_York" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
Run Code Online (Sandbox Code Playgroud)

但是在安装时我需要它完全运行,即使它没有设置正确的时区,我总是可以重新配置它.

我试过了

echo 5 | apt-get install -y tzdata
Run Code Online (Sandbox Code Playgroud)

但它没有按预期工作.

bash ubuntu apt-get dockerfile

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

用Scipy计算行方式点积两个矩阵的矢量化方式

我想尽可能快地计算相同维度的两个矩阵的行方点积.这就是我这样做的方式:

import numpy as np
a = np.array([[1,2,3], [3,4,5]])
b = np.array([[1,2,3], [1,2,3]])
result = np.array([])
for row1, row2 in a, b:
    result = np.append(result, np.dot(row1, row2))
print result
Run Code Online (Sandbox Code Playgroud)

当然输出是:

[ 26.  14.]
Run Code Online (Sandbox Code Playgroud)

numpy vectorization scipy matrix-multiplication dot-product

32
推荐指数
4
解决办法
3万
查看次数

在vim中突出显示TypeScript语法

我通过安装了typescript插件

git clone https://github.com/leafgarland/typescript-vim.git ~/.vim/bundle/typescript-vim
Run Code Online (Sandbox Code Playgroud)

并插入

au BufRead,BufNewFile *.ts   setfiletype typescript
Run Code Online (Sandbox Code Playgroud)

进入~/.vim.rc.Linting via Syntastic和tsc/tslint效果很好,而且

:set syntax
Run Code Online (Sandbox Code Playgroud)

节目syntax=typescript.然而,

:syntax
Run Code Online (Sandbox Code Playgroud)

显示No Syntax items defined for this buffer和突出显示不起作用.

知道出了什么问题吗?

vim vim-syntax-highlighting typescript

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

预检和重定向的CORS请求:不允许.解决方法?

我正在设计一个API,允许用户进行身份验证(使用令牌)并在同一域中包含重定向.现在,对于返回303的端点的未经身份验证的请求,

GET /documents/123  --> 303 redirect to `/documents/abc`
GET /documents/abc  --> 200
Run Code Online (Sandbox Code Playgroud)

一切顺利.

让我们对Authorization发送标头的同一端点进行经过身份验证的请求.这使得请求成为预先请求,并且浏览器执行预检OPTIONS请求,即

OPTIONS /documents/123   --> 204 (everything okay, please proceed)
GET /documents/123       --> 303 redirect to `/documents/abc`
Run Code Online (Sandbox Code Playgroud)

此时,浏览器产生的不是GET实际资源/documents/abc

XMLHttpRequest cannot load http://localhost:8000/people/username/nschloe. 
The request was redirected to 'http://localhost:8000/people/YDHa-B2FhMie', 
which is disallowed for cross-origin requests that require preflight.
Run Code Online (Sandbox Code Playgroud)

此行为符合标准:

7.1.5带预检的跨源请求

如果响应的HTTP状态代码不在2xx范围内

应用网络错误步骤.

这似乎意味着即使重定向位于同一个域(),也无法对经过身份验证的资源进行重定向localhost.

这真的可以吗?有一个共同的解决方法吗?

redirect http cors preflight

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

循环遍历字符串列表

我想循环遍历字符串中给出的项目列表.根据CMake的要求,项目以分号分隔.下列

cmake_minimum_required(VERSION 2.8)

FOREACH(LETTER "a;b;c")
  MESSAGE("<<${LETTER}>>")
ENDFOREACH()
Run Code Online (Sandbox Code Playgroud)

将字符串解释"a;b;c"为字符串文字.相反,当首先分配"a;b;c"变量时,所有变量都按预期进行.

cmake_minimum_required(VERSION 2.8)

SET(MYLIST "a;b;c")
FOREACH(LETTER ${MYLIST})
  MESSAGE("<<${LETTER}>>")
ENDFOREACH()
Run Code Online (Sandbox Code Playgroud)

这是循环列表的推荐方法还是有更优雅的解决方案?

foreach list cmake

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

python distutils不包括SWIG生成的模块

我正在使用distutils从我的项目中创建一个rpm.我有这个目录树:

project/
        my_module/
                 data/file.dat
                 my_module1.py
                 my_module2.py
        src/
            header1.h
            header2.h
            ext_module1.cpp
            ext_module2.cpp
            swig_module.i
        setup.py
        MANIFEST.in
        MANIFEST
Run Code Online (Sandbox Code Playgroud)

我的setup.py:

from distutils.core import setup, Extension

module1 = Extension('my_module._module',
                sources=['src/ext_module1.cpp',
                         'src/ext_module2.cpp',
                         'src/swig_module.i'],
                swig_opts=['-c++', '-py3'],
                include_dirs=[...],
                runtime_library_dirs=[...],
                libraries=[...],
                extra_compile_args=['-Wno-write-strings'])

setup(  name            = 'my_module',
        version         = '0.6',
        author          = 'microo8',
        author_email    = 'magyarvladimir@gmail.com',
        description     = '',
        license         = 'GPLv3',
        url             = '',
        platforms       = ['x86_64'],
        ext_modules     = [module1],
        packages        = ['my_module'],
        package_dir     = {'my_module': 'my_module'},
        package_data    = {'my_module': ['data/*.dat']} )
Run Code Online (Sandbox Code Playgroud)

我的MANIFEST.in档案:

include src/header1.h …
Run Code Online (Sandbox Code Playgroud)

c++ python swig distutils rpm

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

具有仅具有静态方法的类的模块

我有一个包含许多类的Python模块,每个类代表具有其属性的特定物理材料(例如,密度,比热).一些属性只是float类的成员,但很多属性依赖于某些参数,例如温度.我通过@staticmethods 实现了这一点,即所有类看起来都像

class Copper(object):
    magnetic_permeability = 1.0

    @staticmethod
    def density(T):
        return 1.0 / (-3.033e-9 + 68.85e-12*T - 6.72e-15*T**2 + 8.56e-18*T**3)

    @staticmethod
    def electric_conductivity(T, p):
        return 1.0141 * T**2 * p

    @staticmethod
    def specific heat(T):
        return ...


class Silver(object):
    ...

class Argon(object):
    ...

...
Run Code Online (Sandbox Code Playgroud)

因此,Classes仅仅充当所有数据的容器,并且@staticmethods 的丰富性让我怀疑这个用例可能有更合适的设计模式.

任何提示?

python static-methods design-patterns class

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