小编use*_*584的帖子

"缓存中间结果"是什么意思?

我有一组n个向量存储在3 xn矩阵中z.我找到了外用产品np.einsum.当我使用时间计时:

%timeit v=np.einsum('i...,j...->ij...',z,z)
Run Code Online (Sandbox Code Playgroud)

我得到了结果:

The slowest run took 7.23 times longer than the fastest. This could mean that an
intermediate result is being cached 
100000 loops, best of 3: 2.9 µs per loop
Run Code Online (Sandbox Code Playgroud)

这里发生了什么,可以避免吗?最好的3是2.9us,但最慢可能更典型.

benchmarking numpy vectorization ipython

31
推荐指数
1
解决办法
4806
查看次数

scipy稀疏诊断矩阵构造中的错误

当使用scipy.sparse.spdiags或scipy.sparse.diags时,我注意到我希望我认为这是例程中的错误,例如

scipy.sparse.spdiags([1.1,1.2,1.3],1,4,4).toarray()
Run Code Online (Sandbox Code Playgroud)

回报

array([[ 0. ,  1.2,  0. ,  0. ],
       [ 0. ,  0. ,  1.3,  0. ],
       [ 0. ,  0. ,  0. ,  0. ],
       [ 0. ,  0. ,  0. ,  0. ]])
Run Code Online (Sandbox Code Playgroud)

对于正对角线,它会丢弃第一个k数据.有人可能会说,这有一些宏大的编程原因,我只需要用零填充.好吧很烦人,可以使用scipy.sparse.diags来提供正确的结果.但是这个例程有一个无法解决的bug

scipy.sparse.diags([1.1,1.2],0,(4,2)).toarray()
Run Code Online (Sandbox Code Playgroud)

array([[ 1.1,  0. ],
       [ 0. ,  1.2],
       [ 0. ,  0. ],
       [ 0. ,  0. ]])
Run Code Online (Sandbox Code Playgroud)

好和

scipy.sparse.diags([1.1,1.2],-2,(4,2)).toarray()
Run Code Online (Sandbox Code Playgroud)

array([[ 0. ,  0. ],
       [ 0. ,  0. ],
       [ 1.1,  0. ],
       [ 0. ,  1.2]])
Run Code Online (Sandbox Code Playgroud)

但 …

python scipy sparse-matrix

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

我可以在 Java 中将布尔值作为整数操作吗?

java 中的布尔基元本身是一种类型还是可以作为 int 进行操作?在我见过的其他语言中,布尔类型可以像 false=0 和 true=1 一样操作,这有时非常方便。

java boolean

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