小编jor*_*rto的帖子

matplotlib轴标签格式

我遇到了轴的刻度标签格式的问题.我禁用了y_axis的偏移量:

ax1.ticklabel_format(style = 'sci', useOffset=False)
Run Code Online (Sandbox Code Playgroud)

并试图把它作为科学的格式,但我得到的是:

0.00355872
Run Code Online (Sandbox Code Playgroud)

但我期待的是:

3.55872...E-2
Run Code Online (Sandbox Code Playgroud)

或类似的.

我真正想要的是:

3.55872... (on the tick label)
x 10^2  (or something similar - on the axis label)
Run Code Online (Sandbox Code Playgroud)

我可以尝试将标签设置为静态,但最后我将有几十或几百个具有不同值的图,因此需要动态设置.

另一种方法是将y_axis偏移量作为标签,但我也不知道如何做到这一点.

python matplotlib

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

Numpy高精度

我正在使用numpy和pyfits来操纵光谱,我需要高精度(类似于一个值可能高达10 ^ 12的8-10位小数).为此,数据类型"十进制"将是完美的(float64不够好),但不幸的是numpy.interp不喜欢它:

File ".../modules/manip_fits.py", line 47, in get_shift
pix_shift = np.interp(x, xp, fp)-fp
File "/usr/lib/python2.7/dist-packages/numpy/lib/function_base.py", line 1053, in interp
return compiled_interp(x, xp, fp, left, right)
TypeError: array cannot be safely cast to required type
Run Code Online (Sandbox Code Playgroud)

我使用的代码的简化版本:

fp = np.array(range(new_wave.shape[-1]),dtype=Decimal)
pix_shift = np.empty_like(wave,dtype=Decimal)
      x = wave
  xp = new_wave
 pix_shift = np.interp(x, xp, fp)-fp
Run Code Online (Sandbox Code Playgroud)

其中'wave'和'new_wave'是代表一维光谱的一维numpy数组.需要此代码来沿x轴移动我的光谱(这是波长)

我最大的问题是,在代码的下游,我将光谱除以我所有光谱总和构建的模板光谱,以便分析差异,因为我没有足够的小数位,所以我得到了舍入错误.有任何想法吗?

谢谢!

更新:

测试示例:

import numpy as np
from decimal import *
getcontext().prec = 12

wave = np.array([Decimal(xx*np.pi) for xx in range(0,10)],dtype=np.dtype(Decimal))
new_wave = np.array([Decimal(xx*np.pi+0.5) for …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy decimal

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

LDAPSEARCH 转换为表格格式

有没有办法执行 LDAP 搜索并将结果保存为表格格式(例如 csv)?

干杯豪尔赫

ldap openldap ldap-query

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

抑制 python 中库导入的输出

我有一个库需要在我的代码中导入。但是,每当导入它时,它都会向控制台输出几行数据。如何抑制输出?

谢谢

python import

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

并行化词典理解

我有以下功能和字典理解:

def function(name, params):
    results = fits.open(name)
    <do something more to results>
    return results

dictionary = {name: function(name, params) for name in nameList}
Run Code Online (Sandbox Code Playgroud)

并希望将其并行化.有什么简单的方法吗?

这里,我看到该multiprocessing模块可以使用,但无法理解如何使它将我的结果传递给我的字典.

注意:如果可能,请给出一个可以应用于任何返回结果的函数的答案.

注2:主要是操纵拟合文件并将结果分配给一个类

UPDATE

所以这里最终对我有用(来自@code_onkel回答):

def function(name, params):
    results = fits.open(name)
    <do something more to results>
    return results

def function_wrapper(args):
    return function(*args)

params = [...,...,..., etc]    

p = multiprocessing..Pool(processes=(max([2, mproc.cpu_count() // 10])))
args_generator = ((name, params) for name in names)

dictionary = dict(zip(names, p.map(function_wrapper, args_generator)))
Run Code Online (Sandbox Code Playgroud)

使用tqdm只能部分工作,因为我可以使用我的自定义栏,因为tqdm恢复到只有迭代的默认栏.

python dictionary multiprocessing python-2.7

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

Python程序的初始化

我有一个Python程序,它带有一堆代码,我基本上导入一些模块,初始化一些变量并调用一些函数.这是它的一部分:

import numpy as np
import scipy as sp
import scipy.optimize as opt
import scipy.constants as const
import random
import time

if os.name == 'nt': os.system('cls')
if os.name == 'posix': os.system('clear')
rows, columns = os.popen('stty size', 'r').read().split()

Inclination = math.radians(INCLINATION)
Period = PERIOD*const.day
Run Code Online (Sandbox Code Playgroud)

有没有办法我可以将所有这些放入一个单独的模块并调用它?我试图把所有这些都放到一个外部程序中并调用它,但是我知道一切都已完成,但只是在本地,而不是在主代码上.

我们的想法是能够在多个程序中使用这个"初始化模块".

python python-2.7

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

matplotlib空传奇句柄

我想在python中的matplotib图中为一个图例添加一些文本.我在考虑创造一个空手柄,有什么办法吗?已经尝试过使用类似于:

ax.legend([handle1,handle2,None],[label1,label2,labelEmpty])
Run Code Online (Sandbox Code Playgroud)

但是图例不接受None关键字.(我收到错误$ Legend不支持None,请改用代理艺术家.$)

如果这是不可能的任何其他想法?

我正在考虑这样的事情:

 ___________________________
|  handle1  -  label1       |
|  handle2  -  label2       |
|       labelEmpty          |
!___________________________!
Run Code Online (Sandbox Code Playgroud)

谢谢!

python matplotlib legend

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

点击加载html上的JQuery

我尝试为我的个人网页建立一个菜单,当我点击菜单上的相应链接时,该菜单会将html文件加载到内容div中.布局是我想要的,但遗憾的是我无法使click事件发挥作用.这就是我所拥有的:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Jorge Martins' HomePage</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" type="text/css" href="styles.css" media="all" />
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script>
    <script language="javascript">
$(document).ready(function () {
    $('li.about').click(function(){
        $('#content').load( 'about.html' );
    });
    $('#research').click(function(){
        $('#content').load( 'about.html' );
    });
});
    </script>
</head>
<body>
    <div>
    <ul class="menu">
        <li id="home">Home</li>
            <li class="about">About me</li>
            <li id="research">Research</li>
        <li id="publications">Publications</li>
    </ul>
</div>
    <div id="content">
    </div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

和css:

ul.menu {
margin: 0;
padding: 0;
float:left;
width: 15%;
margin: 10px;
}


ul.menu li {
list-style: none;
font-family:Verdana, Arial, Helvetica, …
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery

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