小编bmu*_*bmu的帖子

将大型NumPy数组写入文件的有效方法

我目前有一个在PiCloud上运行的项目,涉及ODE解算器的多次迭代.每次迭代都会生成一个大约30行和1500列的NumPy数组,每次迭代都会附加到前面结果数组的底部.

通常情况下,我只是让函数返回这些相当大的数组,将它们保存在内存中并在一个处理它们.除了 PiCloud对数据大小有相当限制的限制,可以通过函数返回和退出数据,以降低传输成本.哪个很好,除了这意味着我必须启动数千个作业,每个作业都在迭代中运行,而且开销很大.

看来最好的解决方案是将输出写入文件,然后使用其他没有传输限制的函数收集文件.

我最好的办法是将其转储到CSV文件中吗?我应该在每次迭代时添加到CSV文件中,还是将其全部保存在数组中直到结束然后只写一次?我有什么特别聪明的东西吗?

python numpy scientific-computing

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

Matplotlib - 网格和绘制颜色编码的y值/数据范围

这里有新的matplotlib用户.我正在尝试绘制彩色编码的数据线,或者更好的是彩色编码的数据范围.沿y轴的颜色编码间隔.一个粗略的演示脚本如下:

import matplotlib.pyplot as plt

# dummy test data
datapoints = 25
maxtemps = [ 25, 24, 24, 25, 26, 27, 22, 21, 22, 19, 17, 14, 13, 12, 11, 12, 11, 10, 9, 9, 9, 8, 9, 9, 8 ]
mintemps = [ 21, 22, 22, 22, 23, 24, 18, 17, 16, 14, 10, 8, 8, 7, 7, 6, 5, 5, 5, 4, 4, 4, 3, 4, 3 ]
times = list(xrange(datapoints))

# cap a filled plot at a …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

为什么CPython不使用`sphinx.autodoc`作为标准库?

我正在开发一个python库,我正在使用sphinx.autodoc来生成文档,因为我认为这是一个不要重复自己并且文档和代码达成一致的好方法.

从sphinx autodoc发出reStructuredText的评论中我了解到"CPython docs构建过程没有启用autodoc(通过慎重选择)".

我想知道为什么CPython没有使用它,使用的缺点是sphinx.autodoc什么?

python documentation python-sphinx

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

Python:TypeError:不能将序列乘以'float'类型的非int

我是新手程序员,试图制作一个解析xml并将其内容粘贴到频道上的irc机器人.通常我会在谷歌上找到我的答案,但这次我找不到答案.

q0tag = dom.getElementsByTagName('hit')[0].toxml()
q0 = q0tag.replace('<hit>','').replace('</hit>','')

q1 = (q0 * 1.2)
Run Code Online (Sandbox Code Playgroud)

当我试图乘以q0它总是显示

TypeError: can't multiply sequence by non-int of type 'float'.
Run Code Online (Sandbox Code Playgroud)

我试图使q0 int或float但它只是犯了另一个错误

AttributeError: 'NoneType' object has no attribute 'replace'
Run Code Online (Sandbox Code Playgroud)

q0值是没有小数的循环数.

python

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

Pandas DataFrame按天/小时/分钟切片

我有一个带有日期时间索引的pandas Dataframe,如'YYYY-MM-DD HH:MM:SS'.

Index               Parameter
2007-05-02 14:14:08     134.8
2007-05-02 14:14:32     134.8 
2007-05-02 14:14:41     134.8 
2007-05-02 14:14:53     134.8 
2007-05-02 14:15:01     134.8 
2007-05-02 14:15:09     134.8 
......
2007-05-30 23:08:02     105.9 
2007-05-30 23:18:02     105.9 
2007-05-30 23:28:02     105.9 
2007-05-30 23:38:03     105.8 
Run Code Online (Sandbox Code Playgroud)

可以按年df['2007']或按月分割数据帧df['2007-05']吗?

但是,当我试图在白天切片DataFrame时df['2007-05-02'],我得到了错误:

KeyError: < Timestamp: 2007-02-05 00:00:00. 
Run Code Online (Sandbox Code Playgroud)

我使用pandas版本8.0.1.是否可以以比年或月更小的频率切片DataFrame?例如,按天或小时?

python slice pandas

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

熊猫:生成并绘制平均值

我有一个像这样的熊猫数据框:

In [61]: df = DataFrame(np.random.rand(3,4), index=['art','mcf','mesa'],
                        columns=['pol1','pol2','pol3','pol4'])

In [62]: df
Out[62]: 
          pol1      pol2      pol3      pol4
art   0.661592  0.479202  0.700451  0.345085
mcf   0.235517  0.665981  0.778774  0.610344
mesa  0.838396  0.035648  0.424047  0.866920
Run Code Online (Sandbox Code Playgroud)

并且我希望生成一个行,其中包含基准测试中策略的平均值,然后绘制它.

目前,我这样做的方式是:

df = df.T
df['average'] = df.apply(average, axis=1)
df = df.T
df.plot(kind='bar')
Run Code Online (Sandbox Code Playgroud)

有没有一种优雅的方法可以避免双重换位?

我试过了:

df.append(DataFrame(df.apply(average)).T)
df.plot(kind='bar')
Run Code Online (Sandbox Code Playgroud)

这将附加正确的值,但不会正确更新索引并且图形混乱.

澄清.具有双转置的代码的结果是:在此输入图像描述 这就是我要的.显示基准和政策的平均值,而不仅仅是平均值.如果我能做得更好,我只是好奇.

请注意,图例通常会搞砸.要修复:

ax = df.plot(kind='bar')
ax.legend(patches, list(df.columns), loc='best')
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib pandas

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

如何在粗线中绘制指定的数据

我有一个包含几年温度记录的数据文件,我用Pandas读入数据文件,现在它变成了一个DataFrame:

In [86]: tso
Out[86]: 
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 28170 entries, 2005-05-20 13:28:42.239999+00:00 to 2012-12-05           13:26:49.919999+00:00
Data columns:
Day      28170  non-null values
Month    28170  non-null values
Year     28170  non-null values
Temp     28170  non-null values
dtypes: float64(1), int64(3)
Run Code Online (Sandbox Code Playgroud)

然后我根据'月'和'年'列绘制它们:

ax=tso.groupby(['Month','Year']).mean().unstack().plot(linewidth=3,legend=False)
patches,labels=ax.get_legend_handles_labels()
ax.legend(unique(tso['Year'].values),loc='best')
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在我想要去年的温度用粗线绘制.我该怎么办?有什么简单的解决方案吗?谢谢!

python matplotlib pandas

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

为什么像Java这样的语言区分字符串和char而其他语言不区分?

我注意到像Java这样的语言有一个char原语和一个字符串类.其他语言如Python和Ruby只有一个字符串类.相反,这些语言使用长度为1的字符串来表示字符.

我想知道这种区别是否是由于历史原因.我理解直接影响Java的语言有char类型,但没有字符串.而是使用char*或char []形成字符串.

但我不确定是否有这样做的实际目的.我也很好奇,如果某种方式在某些情况下优于另一种方式.

为什么像Java这样的语言区分char原语和字符串类,而像Ruby和Python这样的语言却没有?

当然必须有一些关于它的设计问题,无论是常规,效率,清晰度,易于实现等等.语言设计师真的只是从帽子中挑选一个角色表示,可以这么说吗?

ruby python java string char

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

Sphinx文档,编号图引用

我正在尝试使用latexpdf输出将编号数字用于我的Sphinx文档项目.我在这里安装了Sphinx numfig.py扩展程序https://bitbucket.org/arjones6/sphinx-numfig

但是,每当我使用:num:标签时,它应该提供与图形编号I的交叉引用,而不是得到以下内容

RST

.. _fig_logo:


.. figure:: logo.*

        Example of a figure

Reference to logo :num:`figure #fig_logo`
Run Code Online (Sandbox Code Playgroud)

生成输出:

参考徽标图

难道我做错了什么?

python latex restructuredtext docutils python-sphinx

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

将python类导入到包中的另一个文件夹中

我正在尝试从我的python包的另一个文件夹中导入一个python类,但我这个错误"没有模块命名模型".

这是一个Flask项目.

-app
  |-run.py
  |-myapp
    |- libs
        |- updateto
            |- __init__.py      (empty)
            |- connection.py
        |- removeto
        |- __init__.py    (empty)
    |- static
    |- templates
    |- __init__.py      (NOT empty)
    |- routes.py
    |- models.py
Run Code Online (Sandbox Code Playgroud)

我的init .py:

from flask import Flask

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///maindb.db'

from models import db
db.init_app(app)

import myapp.routes
Run Code Online (Sandbox Code Playgroud)

在我的models.py中,我有一个名为:application的类

在connection.py中我想导入我的类"应用程序".我试过"从模型导入应用程序",但我有这个错误"没有模块命名模型".

我认为通过修改"updateto"文件夹中的init.py可以达到这个目标,但我不确定,因为我不清楚init .py文件的功能......

谢谢

编辑:

这很奇怪,如果在connection.py下我添加"import myapp"和"print(help(myapp))",我输出这个:

Help on package myapp:

NAME
    myapp

FILE
    c:\app\myapp\__init__.py

PACKAGE CONTENTS
    libs (package)
    models
    routes

DATA
    app = <Flask 'myapp'>
Run Code Online (Sandbox Code Playgroud)

但如果我尝试"从myapp导入模型"我有这个错误"ImportError:无法导入名称模型" …

python import module flask

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