小编Seb*_*ian的帖子

更新 matplotlib 中颜色条的范围

我想更新contourf函数内的绘图,效果很好。然而,数据的范围发生了变化,因此我还必须更新颜色条。这就是我未能做到的地方。

请参阅以下最小工作示例:

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111)

# Random data
data = np.random.rand(10, 10)

# Plot data
levels = np.linspace(0., 1., 100)
plot = ax.contourf(data, levels=levels)
clist = plot.collections[:]

# Create colorbar
cbar = plt.colorbar(plot)
cbar_ticks = np.linspace(0., 1., num=6, endpoint=True)
cbar.set_ticks(cbar_ticks)

plt.show()

def update():
    # Remove old plot
    for c in clist:
        ax.collections.remove(c)
        clist.remove(c)

    # Create new data and plot
    new_data   = 2.*np.random.rand(10, 10)
    new_levels = np.linspace(0., 2., …
Run Code Online (Sandbox Code Playgroud)

python matplotlib colorbar contourf

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

Python重装文件

我有一个计算一些东西的脚本.它使用来自单独文件'inputs.py'的输入.

在'inputs.py'中只有几个变量:

A = 2.3
B = 4.5
C = 3.0
Run Code Online (Sandbox Code Playgroud)

在主文件中我导入它们

from inputs import *
Run Code Online (Sandbox Code Playgroud)

如果我现在在'inputs.py'中更改某些内容并再次执行该脚本,它仍然使用旧值而不是新值.我怎样才能重新加载文件?

reload(inputs)
Run Code Online (Sandbox Code Playgroud)

不起作用.

提前谢谢了!

python file reload

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

带预处理器的稀疏矩阵求解器

我有一个形状scipy.sparse.csc_matrix稀疏的矩阵A(N, N)其中N大约为15000A少于1 %非零元素。

我需要Ax=b尽可能高效地解决问题。

Usingscipy.sparse.linalg.spsolve需要350 ms使用scikit-umfpack. scipy.sparse.linalg.gmres50 ms使用时显著更快ILU的预处理器。如果没有预处理器,则需要一分钟以上的时间。

但是,创建预处理器大约需要1.5 s. 鉴于此,仅使用scipy.sparse.linalg.spsolve.

我创建预调质M

from scipy.sparse.linalg import LinearOperator, spilu
ilu = spilu(A)
Mx = lambda x: ilu.solve(x)
M = LinearOperator((N, N), Mx)
Run Code Online (Sandbox Code Playgroud)

有没有更有效的方法来做到这一点,这样使用scipy.sparse.linalg.gmres会更有利可图?

python numpy scipy sparse-matrix

7
推荐指数
0
解决办法
1113
查看次数

将命令行参数传递给 pip install

我目前正在处理一个导入 Fortran 模块的 Python 项目。在setup.py相似的外观

from numpy.distutils.core import Extension
from numpy.distutils.core import setup

ext = Extension(
    name = "fortran_module",
    sources = ["fortran_module.f90"],
    extra_f90_compile_args = ["-some -compile -arguments"]
)

setup(
    ...,
    ...,
    ...,
    ext_modules = [ext],
    ...,
    ...,
    ...
)
Run Code Online (Sandbox Code Playgroud)

我目前正在安装它pip install -e .,它工作正常。但有时我需要更改extra_f90_compile_args,我想在安装过程中将它们作为命令行参数提供,pip而不是更改setup.py文件。例如这样的事情:

pip install -e --compile_args="-O3 -fbacktrace -fbounds-check -fopenmp" .
Run Code Online (Sandbox Code Playgroud)

是否可以将命令行参数传递pipsetup.py文件中?

与此相关,我还想将不同的设置选项传递到setup.py. 例如

pip install -e --setup=setup1 .
Run Code Online (Sandbox Code Playgroud)

或者

pip install -e --setup=setup2 …
Run Code Online (Sandbox Code Playgroud)

python pip setup.py

2
推荐指数
1
解决办法
5723
查看次数

标签 统计

python ×4

colorbar ×1

contourf ×1

file ×1

matplotlib ×1

numpy ×1

pip ×1

reload ×1

scipy ×1

setup.py ×1

sparse-matrix ×1