由于我的愚蠢,在管理几个不同的屏幕会话时,其中很多人都打开了vim,在尝试"组织"我的会话的过程中,我以某种方式设法用0Byte文件覆盖了一个非常重要的.py脚本.
但是,我打开了一个ipython实例,当运行与模块相同的.py文件时,仍会记住以前的代码!
所以我刚刚学到了关于备份的一个艰难的教训(我的最后一个是关于一周前由vim完成的,这将让我有很多工作要做),或者是否有任何可能的,可想到的方法来检索.py文件从已装载的模块?我可能应该得到这样的骑士,但我在这里非常绝望.
我最近发现我的numpy安装(MacOS,带anaconda)是旧版本的1.11.x,而不是最新的1.12.0,当时找不到他们网站上记录的功能.当我打字时conda update numpy,我会被告知安装是最新的.最后在尝试强制之后conda install numpy=1.12.0,出现错误,表明软件包有依赖性问题 - 结果我的astropy安装(我甚至不使用)需要numpy版本1.11.x. 卸载astropy并安装后numpy,升级到版本1.12.0成功.
我很困扰我,因为依赖性问题,anaconda没有发出任何关于忽略最新numpy版本的通知.有没有办法用力展示某种警告或旗帜?
编辑:我从这个github问题线程中看到,目前似乎没有本地方法可以做到这一点.虽然可能直到开发人员添加该功能,但是使用BASH脚本可以实现一种稍微苛刻的方式 - 比如查询可用的最新版本,然后进行conda安装和比较两个版本字符串.
假设我做了一个类似于下面的列表理解:
i = range(5)
a = [f(i) for i in i]
Run Code Online (Sandbox Code Playgroud)
一些功能f.使用与迭代器相同的虚拟名称会产生意想不到的结果吗?有时候,我有变量名是单个字母,并且对我来说是更具可读性坚持使用相同的字母,而不是分配一个新的,像[f(x) for x in x]代替的[f(i) for i in x](例如,如果迭代的信x是有意义的,我会想什么哎呀i).
python list-comprehension python-3.x dictionary-comprehension
我希望能够使用%cd "default_dir"和%matplotlib每当我打电话ipython从我的终端。我尝试将其写入 .py 文件中,.ipython/profile_default/startup/file.py但导致以下错误:
[TerminalIPythonApp] WARNING | Unknown error in handling startup files:
File "/Users/<name>/Dropbox/.ipython/profile_default/startup/startup.py", line 18
%cd "~/Dropbox/"
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud) 我有一堆AAC(.m4a)音频文件需要规范化,并希望找到一种方法来使用一些简单的python脚本来完成它.我发现这个线程上如果有人写了一个超级用户ffmpeg在python命令行实用工具,它工作得很好,但不知道是否有一些现有的包带pip install,将是完成这一任务.
python中的包xarray似乎使用“延迟加载”来指向磁盘上的结构化数据(例如netCDF,HDF5),然后仅在“必要时”将数据加载到内存中。如何检查交互式 python 会话或 python 脚本中给定的 Dataset 或 DataArray 对象是否实际上已“加载”?
理想情况下,类似
import xarray as xr
dataset = xr.open_dataset('data.nc')
dataset.is_loaded() # is it loaded into memory?
Run Code Online (Sandbox Code Playgroud)
不确定这是否是一个有意义的问题,但希望能够安全、自信地控制大型数据集的这种行为,这样整个文件就不会被不必要地读取。
我试图从此页面中找到“离开复制模式”的命令,但似乎prefix+q此功能仅存在键绑定;即,我找不到关联的:command-style命令。
这是否意味着不可能将另一个键绑定到“离开复制模式”?我想绑Esc钥匙。
我注意到我可以将自己的属性添加到matplotlib.axes.Axes()实例中matplotlib.figure.Figure()。例如,
import matplotlib as mpl
fig = mpl.figure.Figure()
ax = fig.add_subplot()
ax.foo = 'bar'
Run Code Online (Sandbox Code Playgroud)
实际上,我可能想使用类似的方法将底图实例添加到坐标区对象
import mpl_toolkits.basemap as basemap
ax.basemap = basemap.Basemap('mollweide', ax=ax)
Run Code Online (Sandbox Code Playgroud)
这样我就可以以更加面向对象、直观的方式添加地理特征。这是这些对象的记录/可靠特征,还是偶然?换句话说,我可以“安全”地使用它吗?
这很有用,因为我经常想在笔记本中的每个单元格上使用内置的"查找和替换"工具; 因为这个工具只适用于选定的单元格(通常只是"当前"单元格),如果我可以快速选择所有单元格,这将非常有用.
要清楚,我想在" 命令模式 "中选择单元格; 我不是在谈论突出所有文本.在我的笔记本电脑上,Cmd+A只显示所有文字.
也许一些随机插件可以做到这一点?
%matplotlib在我的设置中,从我的终端应用程序切换到任何其他正在运行的应用程序后,用 IPython shell 的魔法创建的图弹出窗口(不完全确定它是如何工作的)消失,然后再返回。因此,举例来说,如果我正在绘制一个图形并想要在 Chrome 中查看 StackOverflow 帖子,那么在返回到我的终端应用程序后,我必须重新声明命令plt.show()以重新打开弹出窗口。
这种行为听起来是否不典型(我的设置可能有问题),或者如果它是典型的,是否有一些可能的解决方法?这对于我的安装/操作系统来说可能是独一无二的吗?
我在 MacOS Sierra 上运行最新(刚刚更新)版本的 Anaconda 和 IPython。使用 iTerm2 和 Terminal 都会出现此问题;似乎与终端应用程序无关。
注意:我的目标是复制matlab -nodesktop在终端中生成绘图的行为,这会从 Matlab 应用程序创建持久的图形窗口。
我使用地球物理模型,常见的情况是需要将 2D 数据与 3D 数据相乘、相加等。下面是一个例子。
module benchmarks
implicit none
integer, parameter :: n=500
integer :: k
real :: d2(n,n)
real :: d3(n,n,n)
contains
! Iteration
subroutine benchmark_a(res)
real, intent(out) :: res(n,n,n)
do k = 1, size(d3,3)
res(:,:,k) = d2*d3(:,:,k)
end do
end subroutine
! Spread
subroutine benchmark_b(res)
real, intent(out) :: res(n,n,n)
res = d3*spread(d2, 3, size(d3,3))
end subroutine
end module
program main
use benchmarks
real :: t, tarray(2)
real :: res(n,n,n)
call random_number(d2)
call random_number(d3)
! Iteration
call dtime(tarray, t) …Run Code Online (Sandbox Code Playgroud) 假设我要制作一个包含五个项目的地块,并且只有空间来创建具有3列的图例(多列比这太宽了),例如
import matplotlib.pyplot as plt
f, a = plt.subplots()
for i in range(5):
a.plot(np.arange(10),np.random.rand(10),label='Item #%d'%i)
a.legend(ncol=3)
Run Code Online (Sandbox Code Playgroud)
底部行中的尾随两个条目向左对齐,在右侧留有很大的空白空间,这在美学上不是很令人满意。当您必须标记大量行时,这尤其成问题。
有什么方法可以使未填充行中的条目居中吗?