我希望mv
所有以'x'开头的文件到目录'x'; 就像是:
mv path1/x*.ext path2/x
Run Code Online (Sandbox Code Playgroud)
并为所有字母a,...,z执行此操作
如何编写一个bash脚本,使'x'循环通过字母表?
我是一个numpy的初学者,我试图从一个长的numpy数组中提取一些数据.我需要做的是从我的数组中的一个已定义的位置开始,然后从该位置对每个第n个数据点进行子采样,直到我的数组结束.
基本上如果我有
a = [1,2,3,4,1,2,3,4,1,2,3,4....]
Run Code Online (Sandbox Code Playgroud)
我想对此进行子样本开始,a[1]
然后从那里开始每隔四个点采样,以产生类似的东西
b = [2,2,2.....]
Run Code Online (Sandbox Code Playgroud) 以下代码通过指数缓慢的算法计算斐波纳契数:
#include <cstdlib>
#include <iostream>
#define DEBUG(var) { std::cout << #var << ": " << (var) << std::endl; }
constexpr auto fib(const size_t n) -> long long
{
return n < 2 ? 1: fib(n - 1) + fib(n - 2);
}
int main(int argc, char *argv[])
{
const long long fib91 = fib(91);
DEBUG( fib91 );
DEBUG( fib(45) );
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
我在运行时计算第45个Fibonacci数,在编译时计算第91个.
有趣的是,GCC 4.9编译代码并fib91
在几分之一秒内完成计算,但需要一段时间才能吐出fib(45)
.
我的问题:如果GCC足够聪明以优化fib(91)
计算而不是采用指数缓慢的路径,那么它会阻止它做同样的事情fib(45)
吗?
以上是否意味着GCC产生两个编译版本的fib
函数,其中一个是快速的而另一个是指数级的慢? …
在我的电脑上
~$ python -V
Python 3.2.1
Run Code Online (Sandbox Code Playgroud)
但是当我运行一些python程序时,我遇到了问题.我猜是(或者至少我想试试这个)有一些向后兼容性问题,我想运行那些python脚本
python2 2.7.2-2
Run Code Online (Sandbox Code Playgroud)
它也安装在我的系统上,但我不知道如何将其作为(临时)默认python.python脚本以
#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)
我正在使用arch linux.
我怎样才能格式化IPython html显示的pandas数据帧呢
据我所知,numpy
有设施set_printoptions
,我可以这样做:
int_frmt:lambda x : '{:,}'.format(x)
np.set_printoptions(formatter={'int_kind':int_frmt})
Run Code Online (Sandbox Code Playgroud)
和其他数据类型类似.
但是,当在html中显示数据帧时,IPython不会选择这些格式选项.我还需要
pd.set_option('display.notebook_repr_html', True)
Run Code Online (Sandbox Code Playgroud)
但是如上所述的1,2,3.
编辑:下面是我对2和3的解决方案(不确定这是最好的方法),但我仍然需要弄清楚如何使数字列右对齐.
from IPython.display import HTML
int_frmt = lambda x: '{:,}'.format(x)
float_frmt = lambda x: '{:,.0f}'.format(x) if x > 1e3 else '{:,.2f}'.format(x)
frmt_map = {np.dtype('int64'):int_frmt, np.dtype('float64'):float_frmt}
frmt = {col:frmt_map[df.dtypes[col]] for col in df.columns if df.dtypes[col] in frmt_map.keys()}
HTML(df.to_html(formatters=frmt))
Run Code Online (Sandbox Code Playgroud) 我有两个数据帧,如下所示:
>>> df1
A B
2000-01-01 1.4 1.4
2000-01-02 1.7 -1.9
2000-01-03 -0.2 -0.8
>>> df2
A B
2000-01-01 0.6 -0.3
2000-01-02 -0.4 0.6
2000-01-03 1.1 -1.0
Run Code Online (Sandbox Code Playgroud)
如何使用下面的分层列索引从这两个中创建一个数据帧?
df1 df2
A B A B
2000-01-01 1.4 1.4 0.6 -0.3
2000-01-02 1.7 -1.9 -0.4 0.6
2000-01-03 -0.2 -0.8 1.1 -1.0
Run Code Online (Sandbox Code Playgroud) 在python 3中,
>>> import keyword
>>> keyword.kwlist
Run Code Online (Sandbox Code Playgroud)
和
>>> import builtins
>>> dir(builtins)
Run Code Online (Sandbox Code Playgroud)
是两个不同的列表,但它们具有一些共同的值,特别是
>>> set(dir(builtins)) & set(keyword.kwlist)
{'False', 'True', 'None'}
Run Code Online (Sandbox Code Playgroud)
python中关键字和内置函数有什么区别?当是'False', 'None', 'True'
关键字,当他们是内建?(如果这有任何区别)
我想将一段涉及大量向量和矩阵计算的代码迁移到C或C++,目标是尽可能地加速代码.
for
C代码中的循环线性代数计算与使用LAPACK/BLAS的计算一样快,或者使用这些库有一些独特的加速?
换句话说,简单的C代码(使用for
循环等)可以像利用LAPACK/BLAS的代码一样快地执行线性代数计算吗?
Matplotlib的make_axes_locatable
工具允许您将新轴添加到现有轴的一侧.但是,它会调整父轴的大小.有办法避免这种情况吗?
下面是一个完整的示例,显示了问题以及如何重现它:
import matplotlib.pyplot as pl
from mpl_toolkits.axes_grid import make_axes_locatable
import matplotlib.axes as maxes
fig = pl.figure()
ax1=pl.subplot(1,3,1)
ax1.imshow([[0,1],[2,0]])
ax1.yaxis.set_visible(False)
ax1.xaxis.set_visible(False)
ax2=pl.subplot(1,3,2)
ax2.imshow([[0,1],[2,0]])
ax2.yaxis.set_visible(False)
ax2.xaxis.set_visible(False)
ax3=pl.subplot(1,3,3)
ax3.imshow([[0,1],[2,0]])
ax3.yaxis.set_visible(False)
ax3.xaxis.set_visible(False)
pl.subplots_adjust(wspace=0)
divider = make_axes_locatable(ax1)
cax1 = divider.new_horizontal(size=0.2, pad=0.0, pack_start=True, axes_class=maxes.Axes)
pl.colorbar(ax1.images[0],cax=cax1)
cax1.yaxis.set_label_position('left')
cax1.yaxis.set_ticks_position('left')
fig.add_axes(cax1)
divider = make_axes_locatable(ax2)
cax2 = divider.new_vertical(size=0.2, pad=0.0, pack_start=True, axes_class=maxes.Axes)
fig.add_axes(cax2)
pl.colorbar(ax2.images[0],cax=cax2,orientation='horizontal')
# thin out the tick labels for visibility
for t in cax2.xaxis.get_majorticklabels()[::2]:
t.set_visible(False)
divider = make_axes_locatable(ax3)
cax3 = divider.new_horizontal(size=0.2, pad=0.0, pack_start=False, axes_class=maxes.Axes)
pl.colorbar(ax3.images[0],cax=cax3)
fig.add_axes(cax3) …
Run Code Online (Sandbox Code Playgroud) 我们可以f :: a -> b
为不同的a
和实现一个多态函数b
。我们怎样才能使
twice :: (a -> b) -> a -> c
twice f x = f (f x)
Run Code Online (Sandbox Code Playgroud)
类型检查?即如何编写一个应用多态函数两次的函数?
我们Rank2Types
可以更接近一些,但还不够:
{-# LANGUAGE Rank2Types #-}
twice1 :: (forall a. a -> (m a)) -> b -> (m (m b))
twice1 f = f . f
twice2 :: (forall a. m a -> a) -> m (m b) -> b
twice2 f = f . f
Run Code Online (Sandbox Code Playgroud)
所以一些多态函数可以应用两次:
\> twice1 …
Run Code Online (Sandbox Code Playgroud)