小编JBW*_*ore的帖子

将PDF转换为高分辨率的图像

我正在尝试使用命令行程序convert将PDF转换为图像(JPEG或PNG).这是我试图转换的PDF之一.

我希望程序能够修剪多余的空白区域并返回足够高质量的图像,以便轻松读取上标.

这是我目前最好的尝试.正如你所看到的,修剪效果很好,我只需要提高分辨率.这是我正在使用的命令:

convert -trim 24.pdf -resize 500% -quality 100 -sharpen 0x1.0 24-11.jpg
Run Code Online (Sandbox Code Playgroud)

我试图做出以下有意识的决定:

  • 调整它的大小(对分辨率没有影响)
  • 使质量尽可能高
  • 使用-sharpen(我已尝试过一系列值)

任何有关在最终PNG/JPEG中获得图像分辨率的建议都将非常感谢!

pdf imagemagick

306
推荐指数
9
解决办法
33万
查看次数

如何cPickle转储并将单独的词典加载到同一个文件?

我有一个运行并创建三个词典的过程:2个相当小,1个大.

我知道我可以存储一个字典,如:

import cPickle as pickle
with open(filename, 'wb') as fp:
  pickle.dump(self.fitResults, fp)
Run Code Online (Sandbox Code Playgroud)

我想要做的是将所有3个词典存储在同一个文件中,并能够在另一个时间单独加载三个词典.就像是

with open(filename, 'rb') as fp:
  dict1, dict2, dict3 = pickle.load(fp)
Run Code Online (Sandbox Code Playgroud)

或者甚至更好地加载前两个词典,并使其可选择是否加载第三个(大)词典.这是可能的,还是应该以完全不同的方式解决这个问题?

python dictionary pickle

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

使用pymc与MCMC拟合两个正态分布(直方图)?

我正在尝试使用CCD上的光谱仪检测线条轮廓.为了便于考虑,我已经包含了一个演示,如果解决了,它与我实际想要解决的演示非常相似.

我看过这个:https: //stats.stackexchange.com/questions/46626/fitting-model-for-two-normal-distributions-in-pymc 以及其他各种问题和答案,但他们正在做一些根本不同的事情比我想做的还要多.

import pymc as mc
import numpy as np
import pylab as pl
def GaussFunc(x, amplitude, centroid, sigma):
    return amplitude * np.exp(-0.5 * ((x - centroid) / sigma)**2)

wavelength = np.arange(5000, 5050, 0.02)

# Profile 1
centroid_one = 5025.0
sigma_one = 2.2
height_one = 0.8
profile1 = GaussFunc(wavelength, height_one, centroid_one, sigma_one, )

# Profile 2
centroid_two = 5027.0
sigma_two = 1.2
height_two = 0.5
profile2 = GaussFunc(wavelength, height_two, centroid_two, sigma_two, )

# Measured …
Run Code Online (Sandbox Code Playgroud)

python statistics pymc

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

如何从Jupyter 4.x获取IPython配置文件行为?

官方(?)建议运行IPython Notebook服务器,并通过创建配置文件

$ ipython profile create nbserver
Run Code Online (Sandbox Code Playgroud)

按照http://ipython.org/ipython-doc/1/interactive/public_server.html中的建议.当通过ipython notebook和启动IPython Notebook时,这允许非常不同且非常有用的行为ipython notebook --profile=nbserver.

使用Jupyter 4.0,有一个变化,不再有配置文件.我找到了对话https://gitter.im/ipython/ipython/archives/2015/05/29,其中有用户minrk说:

.ipython目录中有几个东西:

多个配置目录(称为配置文件)

一个'data'目录,包含kernelspecs,nbextensions等内容

运行时信息分散在各处,但主要在配置文件中

Jupyter遵循更适合平台的约定:

一个配置目录在JUPYTER_CONFIG_DIR,默认:.jupyter

JUPYTER_DATA_DIR中的一个数据目录,默认值:特定于平台

JUPYTER_RUNTIME_DIR中的一个运行时目录,默认值:特定于平台

还有一个相当含糊的说法:

如果要使用不同的配置,请使用JUPYTER_CONFIG_DIR = what指定其他配置目录

获得不同行为的最佳方式是什么(例如,在作为服务器运行与正常使用之间)?

它会涉及运行如下:

$ export JUPYTER_CONFIG_DIR=~/.jupyter-nbserver
$ jupyter notebook
Run Code Online (Sandbox Code Playgroud)

每当需要运行服务器"配置文件"时?和

$ export JUPYTER_CONFIG_DIR=~/.jupyter
$ jupyter notebook
Run Code Online (Sandbox Code Playgroud)

每当"正常"配置文件需要运行时?因为那看起来很可怕.在Jupyter 4.0中执行此操作的最佳方法是什么?

python ipython ipython-notebook jupyter

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

Python在子列表中查找列表长度

我试图找出如何获得特定列表中的每个列表的长度.例如:

a = []
a.append([])
a[0].append([1,2,3,4,5])
a[0].append([1,2,3,4])
a[0].append([1,2,3])
Run Code Online (Sandbox Code Playgroud)

我想运行一个命令:

len(a[0][:]) 
Run Code Online (Sandbox Code Playgroud)

这将输出我想要的答案,这是一个长度列表[5,4,3].这个命令显然不起作用,我试过的其他一些也没有用.请帮忙!

python list

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

在Python中重现Unix cat命令

我目前正在复制以下Unix命令:

cat command.info fort.13 > command.fort.13
Run Code Online (Sandbox Code Playgroud)

在Python中使用以下内容:

with open('command.fort.13', 'w') as outFile:
  with open('fort.13', 'r') as fort13, open('command.info', 'r') as com:
    for line in com.read().split('\n'):
      if line.strip() != '':
        print >>outFile, line
    for line in fort13.read().split('\n'):
      if line.strip() != '':
        print >>outFile, line
Run Code Online (Sandbox Code Playgroud)

这是有效的,但必须有一个更好的方法.有什么建议?

编辑(2016):

四年后,这个问题又开始受到关注.我在这里用更长的Jupyter笔记本写了一些想法.

问题的关键在于我的问题与(我意想不到的)行为有关readlines.我可以更好地回答我的目标,这个问题可以更好地回答read().splitlines().

python cat

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

如何设置 pandas 数据框子集的样式?

我之前问过如何仅设置 pandas 数据框的最后一行的样式?并得到了我给出的玩具问题的完美答案。

事实证明,我应该让玩具问题更接近我的真实问题。考虑一个包含超过 1 列文本数据的数据框(我可以对其应用样式):

import pandas as pd
import numpy as np
import seaborn as sns
cm = sns.diverging_palette(-5, 5, as_cmap=True)

df = pd.DataFrame(np.random.randn(3, 4))
df['text_column'] = 'a'
df['second_text_column'] = 'b'
df.style.background_gradient(cmap=cm)
Run Code Online (Sandbox Code Playgroud)

应用于所有数值数据的样式

但是,就像上一个问题一样,我希望只将此样式应用于最后一行。上一个问题的答案是:

df.style.background_gradient(cmap=cm, subset=df.index[-1])
Run Code Online (Sandbox Code Playgroud)

在这种情况下给出了错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/usr/local/miniconda/lib/python3.7/site-packages/IPython/core/formatters.py in __call__(self, obj)
    343             method = get_real_method(obj, self.print_method)
    344             if method is not None:
--> 345                 return method()
    346             return None
    347         else:

/usr/local/miniconda/lib/python3.7/site-packages/pandas/io/formats/style.py in _repr_html_(self)
    161         Hooks into Jupyter …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

使用zlib和cPickle将字典压缩/解压缩为文件

我正在使用python将文件写入zlib压缩和cPickled字典.它似乎工作,但是,我无法弄清楚如何重新读取文件.

我包括以下代码,其中包括我尝试过的几个(以及相关的错误消息).我无处可去.

import sys
import cPickle as pickle
import zlib

testDict = { 'entry1':1.0, 'entry2':2.0 }

with open('test.gz', 'wb') as fp:
  fp.write(zlib.compress(pickle.dumps(testDict, pickle.HIGHEST_PROTOCOL),9))

attempt = 0

try:
  attempt += 1
  with open('test.gz', 'rb') as fp:
    step1 = zlib.decompress(fp)
    successDict = pickle.load(step1)
except Exception, e:
  print "Failed attempt:", attempt, e

try:
  attempt += 1
  with open('test.gz', 'rb').read() as fp:
    step1 = zlib.decompress(fp)
    successDict = pickle.load(step1)
except Exception, e:
  print "Failed attempt:", attempt, e

try:
  attempt += 1
  with open('test.gz', 'rb') as …
Run Code Online (Sandbox Code Playgroud)

python zlib pickle

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

从维基百科解析出生和死亡日期?

我正在尝试编写一个python程序,可以在维基百科上搜索人们的出生和死亡日期.

例如,阿尔伯特爱因斯坦出生于1879年3月14日; 去世:1955年4月18日.

我开始用Python获取维基百科文章

import urllib2
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
infile = opener.open('http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&rvsection=0&titles=Albert_Einstein&format=xml')
page2 = infile.read()
Run Code Online (Sandbox Code Playgroud)

这项工作尽可能地发挥作用.page2是来自Albert Einstein维基百科页面的部分的xml表示.

我看了这个教程,现在我有xml格式的页面... http://www.travisglines.com/web-coding/python-xml-parser-tutorial,但我不明白怎么弄我想要的信息(出生和死亡日期)来自xml.我觉得我必须亲近,但是,我不知道如何从这里开始.

编辑

经过几次回复后,我安装了BeautifulSoup.我现在正处于可以打印的阶段:

import BeautifulSoup as BS
soup = BS.BeautifulSoup(page2)
print soup.getText()
{{Infobox scientist
| name        = Albert Einstein
| image       = Einstein 1921 portrait2.jpg
| caption     = Albert Einstein in 1921
| birth_date  = {{Birth date|df=yes|1879|3|14}}
| birth_place = [[Ulm]], [[Kingdom of Württemberg]], [[German Empire]]
| death_date  = {{Death date and age|df=yes|1955|4|18|1879|3|14}}
| …
Run Code Online (Sandbox Code Playgroud)

python mediawiki wikipedia wikipedia-api mediawiki-api

8
推荐指数
3
解决办法
4411
查看次数

使用pandas读取Excel XML .xls文件

我知道一些先前提出的问题,但没有一个解决方案可用于我在下面提供的可重现的例子.

我试图读取.xls从文件中http://www.eia.gov/coal/data.cfm#production -特别是历史详细的煤炭产量数据(1983年至二零一三年) coalpublic2012.xls文件,该文件可以免费获得通过下拉.熊猫无法读懂它.

相比之下,最近一年可用的coalpublic2013.xls文件,2013年, 文件,没有问题:

import pandas as pd
df1 = pd.read_excel("coalpublic2013.xls")
Run Code Online (Sandbox Code Playgroud)

但未来十年的.xls文件(2004-2012)不会加载.我用Excel查看了这些文件,它们打开了,并且没有损坏.

我从熊猫那里得到的错误是:

---------------------------------------------------------------------------
XLRDError                                 Traceback (most recent call last)
<ipython-input-28-0da33766e9d2> in <module>()
----> 1 df = pd.read_excel("coalpublic2012.xlsx")

/Users/jonathan/anaconda/lib/python2.7/site-packages/pandas/io/excel.pyc in read_excel(io, sheetname, header, skiprows, skip_footer, index_col, parse_cols, parse_dates, date_parser, na_values, thousands, convert_float, has_index_names, converters, engine, **kwds)
    161 
    162     if not isinstance(io, ExcelFile):
--> 163         io = ExcelFile(io, engine=engine)
    164 
    165     return io._parse_excel(

/Users/jonathan/anaconda/lib/python2.7/site-packages/pandas/io/excel.pyc in __init__(self, io, **kwds)
    204                 self.book …
Run Code Online (Sandbox Code Playgroud)

python excel xlrd pandas

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