小编bte*_*tel的帖子

如何用git重写python __version__?

我想__version__在我的模块中定义一个变量,它应该在git commit上自动更新,类似于SVN关键字的功能.有没有办法在Git中实现它?有没有人有一个有效的例子?

我考虑使用GitPython,但我不想引入另一个依赖项,我希望用户从SVN repo或zip包下载模块具有相同的版本控制方案(我不在乎这是一些难以理解的哈希).

编辑:我的特殊问题是我必须运行模拟,其结果取决于模拟脚本的确切版本.因此,每次我必须将版本号与模拟结果一起存储.如果两者都不同步,则可能会产生非常可怕的结果.

python git

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

pandas:带有条件格式的HTML输出

我正在尝试格式化表格,以便每列中的数据根据​​其值以样式格式化(类似于电子表格程序中的条件格式).如何使用HTML格式化程序在熊猫中实现这一目标?

典型的用例是在表格中突出显示重要值.例如:

    correlation  p-value
0   0.5          0.1
1   0.1          0.8
2   0.9          *0.01*
Run Code Online (Sandbox Code Playgroud)

pandas允许为HTML输出定义自定义格式化程序 - 要获得上面的输出,可以使用:

import pandas as pd
from pandas.core import format
from StringIO import StringIO
buf = StringIO()
df = pd.DataFrame({'correlation':[0.5, 0.1,0.9], 'p_value':[0.1,0.8,0.01]})
fmt = format.DataFrameFormatter(df, 
          formatters={'p_value':lambda x: "*%f*" % x if x<0.05 else str(x)})
format.HTMLFormatter(fmt).write_result(buf)
Run Code Online (Sandbox Code Playgroud)

但是,我想更改重要值的样式(例如,使用粗体字体).

一种可能的解决方案是将CSS类附加到<td>HTML输出中的标记,然后可以使用CSS样式表对其进行格式化.以上将成为:

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>correlation</th>
      <th>p_value</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>0</td>
      <td> 0.5</td>
      <td> 0.10</td>
    </tr>
    <tr>
      <td>1</td>
      <td> 0.1</td>
      <td> 0.80</td>
    </tr> …
Run Code Online (Sandbox Code Playgroud)

html css python dataframe pandas

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

在python 3中将map对象转换为numpy数组

在Python 2中,我可以执行以下操作:

import numpy as np    
f = lambda x: x**2
seq = map(f, xrange(5))
seq = np.array(seq)
print seq
# prints: [ 0  1  4  9 16]
Run Code Online (Sandbox Code Playgroud)

在Python 3中,它不再起作用了:

import numpy as np    
f = lambda x: x**2
seq = map(f, range(5))
seq = np.array(seq)
print(seq)
# prints: <map object at 0x10341e310>
Run Code Online (Sandbox Code Playgroud)

如何获得旧行为(将map结果转换为numpy数组)?

编辑:正如@jonrsharpe在他的回答中指出的那样,如果我先转换seq成一个列表,这可以修复:

seq = np.array(list(seq))
Run Code Online (Sandbox Code Playgroud)

但我宁愿避免额外的电话list.

python numpy python-3.x

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

将函数应用于可以返回多行的pandas DataFrame

我正在尝试转换DataFrame,这样一些行将被复制给定次数.例如:

df = pd.DataFrame({'class': ['A', 'B', 'C'], 'count':[1,0,2]})

  class  count
0     A      1
1     B      0
2     C      2
Run Code Online (Sandbox Code Playgroud)

应转变为:

  class 
0     A   
1     C   
2     C 
Run Code Online (Sandbox Code Playgroud)

这与计数功能的聚合相反.是否有一种简单的方法可以在熊猫中实现它(不使用for循环或列表推导)?

一种可能性是允许DataFrame.applymap函数返回多行(类似apply方法GroupBy).但是,我认为现在大熊猫不可能.

python dataframe pandas

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

如何在reStructuredText(reST)中创建清单?

我正在使用reStructuredText编写一个简单的清单.为此我使用一个符号列表,但我想用自定义的迹象,比如空复选框来取代标准的要点.最理想的是,复选框可以在HTML和/或PDF文档中单击.

如果在reST中不可能/无关紧要,你能否推荐其他基于文本的格式?

巴尔托什

restructuredtext

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

使用matplotlib的大量子图

我想用Python matplotlib创建包含许多(100)子图的绘图.我找不到合适的语法:

我想要的东西(这不起作用)

plt.subplot(10,10,i,X1, Y) 
Run Code Online (Sandbox Code Playgroud)

在一个循环中,i从0到99,然后

plt.show()
Run Code Online (Sandbox Code Playgroud)

许多教程中都提供了语法,以便只有很少的子图.然后,语法可以

plt.close('all')
fig = plt.figure()

ax1 = plt.subplot(221)
ax2 = plt.subplot(223)
ax3 = plt.subplot(122)

example_plot(ax1)
example_plot(ax2)
example_plot(ax3)

plt.tight_layout()
Run Code Online (Sandbox Code Playgroud)

代码来自这里.

对于我的问题,我想我不能使用与我一样的语法plt.subplot(10101),等等,我不明白.

你有解决方案吗?

谢谢

python graphics plot matplotlib subplot

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

有没有任何脚本SVG编辑器?

我想使用一些脚本语言(最好是Python)编辑SVG文件.特别是,我想合并两个SVG文件,添加一些注释,并将它们排列在一个更大的图像中.有没有可用于此类目的的软件?

谢谢,

巴尔托什

UPDATE

我终于决定使用nosklo提出的方法.你可以在github repo上找到SVG处理python模块的代码.我还在这篇文章中描述了如何使用它

python svg vector-graphics

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

如何将pickle数据上传到django FileField?

我想在Django模型中存储用Python生成的大型数据集.我的想法是将数据pickle到字符串并将其上传到我的模型的FileField.我的django模型是:

#models.py
from django.db import models

class Data(models.Model):
    label = models.CharField(max_length=30)
    file = models.FileField(upload_to="data")
Run Code Online (Sandbox Code Playgroud)

在我的Python程序中,我想做以下事情:

import random, pickle

data_entry = Data(label="somedata")
somedata = [random.random() for i in range(10000)]
# Next line does NOT work 
#data_entry.file.save(filename, pickle.dumps(somedata))
Run Code Online (Sandbox Code Playgroud)

如何somedatafile保留使用upload_to参数定义的路径时修改要存储的最后一行?

python django upload file pickle

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

将numpy标量转换为简单的python类型

我有一个带有单个值(标量)的numpy数组,我想将其转换为对应的Python数据类型.例如:

import numpy as np
a = np.array(3)
b = np.array('3')
Run Code Online (Sandbox Code Playgroud)

我可以将它们转换成intstr通过铸造:

a_int = int(a)
b_str = str(b)
Run Code Online (Sandbox Code Playgroud)

但我需要提前知道这些类型.我想转换a为一个整数和b一个没有显式类型检查的字符串.有没有一种简单的方法来实现它?

python numpy

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