小编beh*_*uri的帖子

在Bash中循环使用字母

我希望mv所有以'x'开头的文件到目录'x'; 就像是:

mv path1/x*.ext path2/x
Run Code Online (Sandbox Code Playgroud)

并为所有字母a,...,z执行此操作

如何编写一个bash脚本,使'x'循环通过字母表?

bash loops for-loop

75
推荐指数
5
解决办法
7万
查看次数

对numpy数组中的每个第n个条目进行二次采样

我是一个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)

python arrays numpy

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

编译时如何(指数)比运行时更快?

以下代码通过指数缓慢的算法计算斐波纳契数:

#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函数,其中一个是快速的而另一个是指数级的慢? …

c++ compiler-construction gcc constexpr c++11

48
推荐指数
2
解决办法
2695
查看次数

python 2而不是python 3作为(临时)默认python?

在我的电脑上

~$ 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.

python

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

如何格式化IPandy html显示的Pandas数据帧?

我怎样才能格式化IPython html显示的pandas数据帧呢

  1. 数字是正确的
  2. 数字有逗号作为千位分隔符
  3. 大浮点数没有小数位

据我所知,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)

html python ipython pandas

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

python/pandas:如何将两个数据帧合并为一个具有分层列索引的数据帧?

我有两个数据帧,如下所示:

>>> 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 pandas

20
推荐指数
1
解决办法
4750
查看次数

Python3:关键字和内置函数之间有什么区别?

在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'关键字,当他们是内建?(如果这有任何区别)

python python-3.x

14
推荐指数
1
解决办法
2040
查看次数

LAPACK/BLAS与简单的"for"循环

我想将一段涉及大量向量和矩阵计算的代码迁移到C或C++,目标是尽可能地加速代码.

forC代码中的循环线性代数计算与使用LAPACK/BLAS的计算一样快,或者使用这些库有一些独特的加速?

换句话说,简单的C代码(使用for循环等)可以像利用LAPACK/BLAS的代码一样快地执行线性代数计算吗?

c c++ performance blas lapack

8
推荐指数
2
解决办法
5614
查看次数

在不改变原轴大小的情况下制作分隔线?

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)

python matplotlib

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

Haskell:应用多态函数两次

我们可以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)

haskell

5
推荐指数
1
解决办法
589
查看次数