如何修改python决定以科学计数法打印的点?
例如,我喜欢一切> 1e4或< 1e-4用科学记谱法打印.
好:
In [11]: 5e20
Out[11]: 5e+20
Run Code Online (Sandbox Code Playgroud)
坏:
In [12]: 5e10
Out[12]: 50000000000.0
Run Code Online (Sandbox Code Playgroud) 我正在编写我的第一个Python模块,我想知道物流:具体来说,人们如何处理设置/构建.
它是标准的做法,所有的开始了distutils在地方的东西,并在virtualenv运行setup.py的每次修改和测试等?
人们更经常创建一个工作代码,然后担心将其转换为可分发的包吗?
非常具体的示例问题:我的代码需要访问数据文件.我应该只是在文件地址中硬编码,DATA_FILE_PATH = "./data/DATA.npz"或者我应该从一开始就弄清楚如何使用所有这些MANIFEST.in/ setup(..., package_data={ ... }, ...)东西?
编辑:@LukasGraf的这个惊人的答案提供了一些很棒的工作流程信息,很大程度上回答了我的问题.请给他一些赞成票!
我试图让索引按最后一个轴排序一个多维数组,例如
>>> a = np.array([[3,1,2],[8,9,2]])
Run Code Online (Sandbox Code Playgroud)
我想要这样的指数i,
>>> a[i]
array([[1, 2, 3],
[2, 8, 9]])
Run Code Online (Sandbox Code Playgroud)
根据numpy.argsort的文档,我认为它应该这样做,但我收到错误:
>>> a[np.argsort(a)]
IndexError: index 2 is out of bounds for axis 0 with size 2
Run Code Online (Sandbox Code Playgroud)
编辑:我需要以相同的方式重新排列相同形状的其他数组(例如,b这样的数组a.shape == b.shape)......这样
>>> b = np.array([[0,5,4],[3,9,1]])
>>> b[i]
array([[5,4,0],
[9,3,1]])
Run Code Online (Sandbox Code Playgroud) 如果我使用Agg后端,我无法保持图像窗口打开show()(无论是否block=True) - 它们几乎立即关闭.如果我不使用Agg,那么我会收到警告:
/Library/Python/2.7/site-packages/matplotlib-1.2.0-py2.7-macosx-10.8-intel.egg/matplotlib/tight_layout.py:225: UserWarning: tight_layout : falling back to Agg renderer warnings.warn("tight_layout : falling back to Agg renderer")
示例代码:
import matplotlib as mpl
mpl.use('Agg') # With this line = figure disappears; without this line = warning
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111)
mu, sigma = 0, 0.5
x = np.linspace(-3, 3, 100)
plt.plot(x, mlab.normpdf(x, mu, sigma))
fig.tight_layout()
plt.show()
Run Code Online (Sandbox Code Playgroud)
我应该使用不同的后端或方法吗?
抱歉.我刚刚学习Python以及与数据分析有关的一切.
我怎么能用Spyder打开一个.npy文件?或者我必须使用其他程序?我正在使用Mac,如果这完全相关的话.
我希望设置一种可以将正常图形(暗线、白色/透明背景)转换为伪倒置图形(浅色线、黑色/透明背景)的方法。我可以后处理反转图像,但直接反转颜色看起来很糟糕,所以我想(尝试)创建从一组颜色到另一组颜色的映射,然后将其应用于所有已添加的艺术家到(所有轴上)一个图形。
有没有办法访问已添加到图形中的所有对象(例如文本、散点图、线条、刻度标签等)?
编辑:我的动机是自动创建白色背景和黑色背景版本的数字。出版物(例如)总是(我认为)需要白色背景数字,而黑色背景数字可能更适合演示文稿(即谈话幻灯片)。虽然它不会是麻烦,设置一个标志,并更改此基础上,例如,每个颜色
if dark:
col_line = 'cyan'
col_bg = 'black'
else:
col_line = 'red'
col_bg = 'white'
# ... plot ...
Run Code Online (Sandbox Code Playgroud)
做这样的事情会更酷,更方便(尽管有开销),
fig.savefig('dark.pdf')
invert(fig)
fig.savefig('light.pdf')
Run Code Online (Sandbox Code Playgroud) 通常我使用的对象将具有(签名的)int参数(例如int iSize),这些参数最终存储了应该有多大的东西.同时,我经常将它们初始化-1为表示对象(等)尚未设置/尚未填充/尚未准备好使用.
comparison between signed and unsigned integer当我做类似的事情时,我常常会收到警告if( iSize >= someVector.size() ) { ... }.
因此,我名义上不想使用unsigned int.是否存在导致错误或意外行为的情况?
如果不是:处理这个问题的最佳方法是什么?如果我使用编译器标志,-Wno-sign-compare我可以(假设)错过我应该使用unsigned int(或类似的东西)的情况.那么在与unsigned int--eg 比较时我应该使用一个演员if( iSize >= (int)someVector.size() ) { ... }吗?
如果我开始单独输入文件路径,并且选项卡完成它,它可以很好地工作,即
In [1]: ~
[TAB]
In [1]: /Users/zhermes/
Run Code Online (Sandbox Code Playgroud)
但如果它在报价单内,它也会自动关闭报价,即
In [2]: "~
[TAB]
In [2]: "/Users/zhermes/"
Run Code Online (Sandbox Code Playgroud)
这使得继续插入更多路径令人讨厌...反正有没有禁用此行为?
编辑:
注意:这是ipython 问题#1172.
解决方法:在开始输入路径之前关闭引号,然后Tab-completion将不需要关闭它.即
In [1]: ""
In [1]: "~[TAB]"
In [1]: "/Users/DilithiumMatrix/"
Run Code Online (Sandbox Code Playgroud) 我随机选择了这些数字,但这些结果似乎是一致的 - 浮点指数比整数指数快25%-50%.这些处理方式有何不同?
In [209]: %timeit -n 100000 -r 100 np.power(3.71242, 7)
100000 loops, best of 100: 3.45 µs per loop
In [210]: %timeit -n 100000 -r 100 np.power(3.71242, 7.0)
100000 loops, best of 100: 1.98 µs per loop
Run Code Online (Sandbox Code Playgroud) 随着我的ipython笔记本电脑变得越来越大,我发现自己越来越频繁地希望在两个部分之间快速移动.由于没有拆分窗口视图,有没有办法同时在两个浏览器选项卡中编辑同一个笔记本?天真地看起来你必须在第一个窗口中进行更改后在第二个窗口重新加载笔记本.
我也对这方面的任何一般工作流程建议感兴趣,谢谢!
python ×7
numpy ×3
ipython ×2
matplotlib ×2
plot ×2
arrays ×1
autocomplete ×1
c++ ×1
comparison ×1
distribution ×1
file ×1
formatting ×1
int ×1
jupyter ×1
output ×1
package ×1
path ×1
performance ×1
printing ×1
sorting ×1
string ×1
types ×1
unsigned ×1
warnings ×1
workflow ×1