小编Eth*_*xxx的帖子

如何在matplotlib中隐藏表面图后面的一条线?

我想通过球体表面上的色彩映射使用Matplotlib绘制数据.另外,我想添加一个3D线图.我到目前为止的代码是这样的:

import matplotlib
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np


NPoints_Phi         = 30
NPoints_Theta       = 30

radius              = 1
pi                  = np.pi
cos                 = np.cos
sin                 = np.sin

phi_array           = ((np.linspace(0, 1, NPoints_Phi))**1) * 2*pi
theta_array         = (np.linspace(0, 1, NPoints_Theta) **1) * pi


phi, theta          = np.meshgrid(phi_array, theta_array) 


x_coord             = radius*sin(theta)*cos(phi)
y_coord             = radius*sin(theta)*sin(phi)
z_coord             = radius*cos(theta)


#Make colormap the fourth dimension
color_dimension     = x_coord 
minn, maxx          = color_dimension.min(), color_dimension.max()
norm                = matplotlib.colors.Normalize(minn, maxx)
m …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib mayavi

11
推荐指数
1
解决办法
1839
查看次数

检查numpy数组是否连续?

我如何确定n维numpy数组Arr是C样式还是Fortran样式连续的?

python numpy contiguous

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

Numpy性能差异取决于数值

在Numpy中评估表达式时,我发现了一个奇怪的性能差异.

我执行了以下代码:

import numpy as np
myarr = np.random.uniform(-1,1,[1100,1100])
Run Code Online (Sandbox Code Playgroud)

然后

%timeit np.exp( - 0.5 * (myarr / 0.001)**2 )
>> 184 ms ± 301 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)
Run Code Online (Sandbox Code Playgroud)

%timeit np.exp( - 0.5 * (myarr / 0.1)**2 )
>> 12.3 ms ± 34.3 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
Run Code Online (Sandbox Code Playgroud)

在第二种情况下,计算速度提高了近15倍!请注意,唯一的区别是因子为0.1或0.001.

这种行为的原因是什么?我可以更改某些内容以使第一次计算与第二次计算一样快吗?

python performance numpy

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

"Desort"矩阵.在Matlab中撤消排序

这个问题基本上是一个扩展了这个问题.

A在Matlab中有一个矩阵,想要沿着一个维度对该矩阵进行排序:

A = rand(3,3,5); [B idx] = sort(A,3);

现在idx是一个包含"已排序"索引的矩阵.我怎样才能A使用B和取回矩阵idx

遗憾的是,原始问题的答案对矩阵不起作用.

sorting matlab matrix

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

RuntimeWarning:reduce中遇到无效值

更新numpy到版本1.14.1后,执行任何命令(例如键入1+1)后,我收到以下警告消息:

/home/username/anaconda3/lib/python3.6/site-packages/numpy
/core/_methods.py:26: RuntimeWarning: invalid value encountered in reduce
return umr_maximum(a, axis, None, out, keepdims)
Run Code Online (Sandbox Code Playgroud)

现在有人问题是什么以及如何解决它?

python numpy runtime

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

scipy.interpolate.Rbf() 插值不准确

当我执行以下代码时

import matplotlib.pyplot as plt
import numpy as np
from scipy.interpolate import Rbf

x_coarse, y_coarse = np.mgrid[0:5, 0:5]
x_fine, y_fine = np.mgrid[1:4:0.23,1:4:0.23]
data_coarse = np.ones([5,5])

rbfi = Rbf(x_coarse.ravel(), y_coarse.ravel(), data_coarse.ravel())

interpolated_data = rbfi(x_fine.ravel(), y_fine.ravel()).reshape([x_fine.shape[0], 
                                                                  y_fine.shape[0]])

plt.imshow(interpolated_data)
Run Code Online (Sandbox Code Playgroud)

该数组interpolated_data的值范围为 0.988 到 1.002,相应的图如下所示:

数组“data_fine”的绘图

但是,我希望在这样一个简单的插值情况下,插值值会更接近正确值,即 1.000。

我认为插值的变化是由插值点到给定数据点的距离不同引起的。

我的问题是:有没有办法避免这种行为?如何获得不按插值点到数据点的距离进行加权的插值,并且只给我 1.000 的值interpolated_data

python interpolation numpy scipy

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

在scipy.optimize.brute()中指定范围

当我尝试使用以下代码使用scipy.minimize.brute()最小化一个函数时:

import scipy
scipy.optimize.brute(lambda x: x**2, ranges=(-2,3))
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

TypeError: object of type 'int' has no len()
Run Code Online (Sandbox Code Playgroud)

我想这与范围的规格有关,但是我不明白为什么。该文件说

范围元组的每个组成部分都必须是“切片对象”或形式(低,高)的范围元组。

我的错误在哪里?

python optimization runtime-error scipy

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


尝试使用 SmoothSphereBivariateSpline() 进行插值时出错:“ValueError:bispev 返回的错误代码:10”

我想将随机散布在球体表面上的数据插入到规则的经度/纬度网格上。我试图SmoothSphereBivariateSpline()scipy.interpolate包中做到这一点(见下面的代码)。

import numpy as np
from scipy.interpolate import SmoothSphereBivariateSpline

#Define the input data and the original sampling points
NSamp = 2000
Theta = np.random.uniform(0,np.pi,NSamp)
Phi   = np.random.uniform(0,2*np.pi, NSamp)
Data  = np.ones(NSamp)

Interpolator = SmoothSphereBivariateSpline(Theta, Phi, Data, s=3.5)

#Prepare the grid to which the input shall be interpolated
NLon = 64
NLat = 32
GridPosLons = np.arange(NLon)/NLon * 2 * np.pi
GridPosLats = np.arange(NLat)/NLat * np.pi
LatsGrid, LonsGrid = np.meshgrid(GridPosLats, GridPosLons)
Lats = LatsGrid.ravel()
Lons = LonsGrid.ravel() …
Run Code Online (Sandbox Code Playgroud)

python interpolation numpy scipy

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

加载共享库时出错:libhdf5.so.101:无法打开共享对象文件

我目前正在尝试在 Ubuntu 18.04 计算机上安装此 GitHub 库,并且遵循了 Github 页面上所述的所有安装步骤。但是,当我尝试在命令行中调用该函数时siemens_to_ismrmrd,出现以下错误:

error while loading shared libraries: libhdf5.so.101: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

不过,libhdf5 安装在我的机器上。locate libhdf5.so在命令行中输入给出

/home/username/anaconda3/lib/libhdf5.so
/home/username/anaconda3/lib/libhdf5.so.101
/home/username/anaconda3/lib/libhdf5.so.101.0.0
/home/username/anaconda3/pkgs/hdf5-1.10.1-h9caa474_1/lib/libhdf5.so
/home/username/anaconda3/pkgs/hdf5-1.10.1-h9caa474_1/lib/libhdf5.so.101
/home/username/anaconda3/pkgs/hdf5-1.10.1-h9caa474_1/lib/libhdf5.so.101.0.0
Run Code Online (Sandbox Code Playgroud)

在关于 SO 的另一个问题中,建议运行sudo ldconfig. 这对我的情况也没有帮助,仍然弹出相同的错误。

echo $LD_LIBRARY_PATH建议在其他问题中查看的命令不返回任何内容。

我该如何解决这个问题?

ubuntu makefile cmake shared-libraries

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

scipy.interpolate.griddata 和 scipy.interpolate.Rbf 的区别

Scipy 函数griddataRbf均可用于内插随机分散的 n 维数据。它们之间有什么区别?其中之一在准确性或性能方面是否优越?

IMO,这不是这个问题的重复,因为我不是在问如何执行插值,而是在问两种特定方法之间的技术差异是什么。

python interpolation numpy scipy

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

如何使用 LibreOffice Draw 绘制高斯曲线?

我想在 LibreOffice Draw 中绘制一条高斯曲线作为矢量图形。使用“曲线”函数,我只能得到 类似抛物线的东西。 有人知道如何做高斯吗?

先感谢您!

gaussian libreoffice libreoffice-draw

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

在不创建文件的情况下检查C++中是否存在文件

我想检查文件是否存在并尝试使用以下函数

#include <fstream>

bool DoesFileExist(const std::string& filename) {
    std::ifstream ifile(filename.c_str());
    return (bool)ifile;
    }
Run Code Online (Sandbox Code Playgroud)

但是,它似乎没有正常工作,因为而不是检查存在是否创建了文件!这有什么问题?

请注意,我被迫使用C++ 98标准,不能使用#include <sys/stat.h>#include <unistd.h>此处接受的答案中建议.

c++ fstream file ifstream

-1
推荐指数
1
解决办法
7634
查看次数