小编use*_*964的帖子

在 cmd 提示符中使用“setlocalenabledelayedexpansion”

setlocal enabledelayedexpansion只能在批处理文件中工作吗?如何setlocal enabledelayedexpansion在cmd提示符下使用?

cmd batch-file

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

如何在 scipy 中找到已弃用函数的替代品?

例如,threshold根据doc ,此函数已被弃用。

然而,医生没有说任何替代品。是将来就消失了,还是已经有替代品了?如果是,如何找到替代函数?

python numpy scipy

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

如何让pandas groupby不懒惰?

本教程中提到 pandas groupby 对象是惰性的。

\n\n
\n

它\xe2\x80\x99本质上是懒惰的。在您这么说之前,它不会真正执行任何操作来产生有用的结果。

\n
\n\n

\n\n
\n

还值得一提的是,.groupby() 确实通过为您传递的每个键构建一个 Grouping 类实例来完成一些(但不是全部)分割工作。然而,保存这些分组的 BaseGrouper 类的许多方法都是延迟调用的,而不是在 init ( ) 处调用的,而且许多方法还使用缓存的属性设计。

\n
\n\n

所以我做了一些测试来确保 groupby 真的很懒。

\n\n

\n\n
df=pd.DataFrame(np.random.randint(1,10,size=(1000000,4)))\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后

\n\n
%timeit gg=df.groupby(1)\n35.6 \xc2\xb5s \xc2\xb1 110 ns per loop (mean \xc2\xb1 std. dev. of 7 runs, 10000 loops each)\n
Run Code Online (Sandbox Code Playgroud)\n\n

这几乎不需要时间。和

\n\n
%timeit res=gg.get_group(1)\n2.76 ms \xc2\xb1 8 \xc2\xb5s per loop (mean \xc2\xb1 std. dev. of 7 runs, 100 loops each)\n
Run Code Online (Sandbox Code Playgroud)\n\n

时间比

\n\n
%timeit res=df[df[1]==1]\n6.87 ms \xc2\xb1 …
Run Code Online (Sandbox Code Playgroud)

python group-by pandas

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

指针只存储内存地址吗?

这些天我正在学习C编程语言.我有一个关于指针的问题.

教科书说指针存储内存地址,使用printf("%p",pointer)我们可以显示这个指针在我们的内存中指向的位置.

但每个指针都有一个类型,如int *pointer,long *p等等.int *pointer表示"p是指向int的指针".

我的问题,如果我们写

int *p,i;
p=&i;
*p=99;
Run Code Online (Sandbox Code Playgroud)

如果指针只包含地址信息,程序怎么知道应该用多少位数来存储整数99?因为整数可以是16位int或32位long.

所以我想知道内存中的int指针是否不仅存储地址信息,还存储类型信息?

c

4
推荐指数
1
解决办法
1575
查看次数

LAPACK和BLAS的高性能版本是什么?

IMSL 的这一页说

为了获得改进的性能,我们建议链接 LAPACK 和 BLAS 的高性能版本(如果可用)。

什么是 LAPACK 和 BLAS 的高性能版本?

blas lapack

4
推荐指数
1
解决办法
2399
查看次数

正则表达式:为什么这种负面的前瞻不起作用?

我有这样的文字

real:: a
real :: b
real c
Run Code Online (Sandbox Code Playgroud)

现在我想匹配那些没有::遵循的真实,在这种情况下,我想只匹配第3真实.所以我试着使用前瞻性的正则表达式

real\s*(?!::)
Run Code Online (Sandbox Code Playgroud)

但这匹配

real :: b
real c
Run Code Online (Sandbox Code Playgroud)

对于\s*零或更多的意义\s,为什么real :: b匹配?

更新

感谢WiktorStribiżew.使用regex101调试工具.我们可以发现backtrack让事情变得复杂.

我提出了另一个类似的任务,但我无法解决

real (xx(yy)) :: a
real (zz(pp)):: b
real (cc(rr)) c
Run Code Online (Sandbox Code Playgroud)

再次,我想匹配real (cc(rr))哪个没有::跟随.

real\s*\(.*?\)+(?!\s*::)
Run Code Online (Sandbox Code Playgroud)

这是我试过的,但失败了.看看正则表达式调试,它也是由于回溯.但是如何正确地做到这一点?

regex

4
推荐指数
1
解决办法
3357
查看次数

为什么列表理解中的 lambda 函数比 map 中的慢?

我做了一个测试

%timeit list(map(lambda x:x,range(100000)))
%timeit [(lambda x:x)(i) for i in range(100000)]
Run Code Online (Sandbox Code Playgroud)

29 ms ± 4.4 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
51.2 ms ± 3.76 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
Run Code Online (Sandbox Code Playgroud)

为什么python lambda函数在列表理解中比在map中慢?

python lambda

4
推荐指数
1
解决办法
236
查看次数

为什么OpenMP原子和关键不能给出正确的结果?

我编写了以下Fortran代码来测试atomiccritical

program test
    implicit none
    integer::i
    integer::a(10),b(10),atmp(10),btmp(10)
    a=[1,2,3,4,5,6,7,8,9,10]
    b=[12,32,54,77,32,19,34,1,75,45]
    atmp=a
    btmp=b
    write(*,'(1X,10I4)') a+b
    print*,'------------------'
    !$omp parallel
    !$omp do
    do i=1,10
        B(I) = B(I)+A(I)
    end do
    !$omp end do
    !$omp single
    write(*,'(1X,10I4)') b
    !$omp end single

    a=atmp
    b=btmp
    !$omp do
    do i=1,10
        !$omp critical
        B(I) = B(I)+A(I)
        !$omp end critical
    end do
    !$omp end do
    !$omp single
    write(*,'(1X,10I4)') b
    !$omp end single

    a=atmp
    b=btmp
    !$omp do
    do i=1,10
        !$omp atomic
        B(I) = B(I)+A(I)
        !$omp end atomic
    end do …
Run Code Online (Sandbox Code Playgroud)

fortran openmp

3
推荐指数
1
解决办法
634
查看次数

存储在变量中的赋值语句会导致 Bash 中出现命令未找到错误

例如:

#!/bin/bash
sss='ls -l'
$sss
ttt='a=100'
$ttt
Run Code Online (Sandbox Code Playgroud)

的输出ls是正确的,但是赋值语句会输出错误信息:

第 5 行:a=100:未找到命令

为什么有区别?

如果赋值不是命令,那它是什么?a=100我的意思是显式和从变量扩展之间有什么区别a=100,我的意思是,bash 看到同样的事情a=100,对吗?为什么他们有不同的解释?

bash

3
推荐指数
1
解决办法
204
查看次数

pandas Series.map() 的内部实现是什么?

我注意到 pandas Series.map() 对于字典映射来说非常快

\n\n

准备数据如下:

\n\n
a=np.random.randint(0,1000,10**5)\ns=pd.Series(a)\nd=dict(zip(np.arange(1000),np.random.random(1000)))\n
Run Code Online (Sandbox Code Playgroud)\n\n

定时

\n\n
%timeit -n10 s.map(d)\n%timeit -n10 np.vectorize(d.get)(a)\n
Run Code Online (Sandbox Code Playgroud)\n\n

给出

\n\n
1.42 ms \xc2\xb1 168 \xc2\xb5s per loop (mean \xc2\xb1 std. dev. of 7 runs, 10 loops each)\n20.6 ms \xc2\xb1 386 \xc2\xb5s per loop (mean \xc2\xb1 std. dev. of 7 runs, 10 loops each)\n
Run Code Online (Sandbox Code Playgroud)\n\n

其中第二种方法是我在 stackoverflow 上找到的进行 numpy dict 映射的典型建议。

\n\n

numpy还有另一种典型的解决方案如下

\n\n
%%timeit -n10 \nb = np.copy(a)\nfor k, v in d.items():\n    b[a==k] = v\n
Run Code Online (Sandbox Code Playgroud)\n\n

这使

\n\n
43.9 ms \xc2\xb1 …
Run Code Online (Sandbox Code Playgroud)

python performance numpy pandas

3
推荐指数
1
解决办法
146
查看次数

标签 统计

python ×4

numpy ×2

pandas ×2

bash ×1

batch-file ×1

blas ×1

c ×1

cmd ×1

fortran ×1

group-by ×1

lambda ×1

lapack ×1

openmp ×1

performance ×1

regex ×1

scipy ×1