小编Py-*_*ser的帖子

如何使用 pyenv 激活虚拟环境?

我按照本指南进行安装,pyenv以便管理我在 Mac 上安装的所有 Python 版本。但是,我不清楚该pyenv global 3.7.3命令的作用以及如何激活使用 Python\xc2\xa03.7 的venv 。如果我输入:

\n
pyenv version\n
Run Code Online (Sandbox Code Playgroud)\n

输出:

\n
3.7.3\n
Run Code Online (Sandbox Code Playgroud)\n

但显然这不足以激活venv

\n

python macos python-venv pyenv

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

Python:A4大小的情节

我有一个代码可以保存一个数字:

savefig("foo.eps", orientation = 'portrait', format = 'eps')
Run Code Online (Sandbox Code Playgroud)

如果我没有指定anythingelse,则图形被正确保存但是当我打印它时,图形仅填充A4纸张的一半.如果我将字符串修改为:

savefig("foo.eps", papertype = 'a4', orientation = 'portrait', format = 'eps')
Run Code Online (Sandbox Code Playgroud)

什么都没有!如何以填充整张A4纸的方式设置图形的大小?提前谢谢了.

python matplotlib

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

克服空数组的ValueError

这个讨论中,我试图解决在绘制twiny()我的情节之后绘制y轴限制的问题.我想这个:

ax.set_ylim([y.min()-0.05, y.max()+0.05])
Run Code Online (Sandbox Code Playgroud)

是个很好的解决方案.对于连续的数据集,可能也是如此.正如我在讨论中所说的,无论如何,我的数据很嘈杂,有时还有差距.所以有些绘制的范围没有数据.在这种情况下,自然地,使用.min()会引发错误:

ValueError: zero-size array to reduction operation minimum which has no identity
Run Code Online (Sandbox Code Playgroud)

因为数组是空的.如何解决它,以便代码不关心对y轴施加限制?(希望这是空数组将导致的唯一问题)

python numpy matplotlib

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

matplotlib的上限/下限

我想用错误栏绘制一些数据点.其中一些数据点只有上限或下限,而不是误差条.

所以我试图使用索引来区分带有错误栏的点和带有上限/下限的点.但是,当我尝试这样的事情时:

errorbar(x[i], y[i], yerr = (ymin[i], ymax[i]))
Run Code Online (Sandbox Code Playgroud)

我收到错误:

ValueError: In safezip, len(args[0])=1 but len(args[1])=2
Run Code Online (Sandbox Code Playgroud)

这与此处的讨论类似,但我不使用熊猫,但是,对我来说,阅读其他几个关于它的话真的很有用.

无论如何,我试图通过以下方式"扭转"错误:

errorbar(x[i], y[i], yerr = [[ymin[i], ymax[i]]], uplims = True)
Run Code Online (Sandbox Code Playgroud)

但结果图不清楚:似乎将上限和误差标绘在一起,或者上限绘制两次......

目标是在上下误差条不对称时绘制上限/下限,因此我可以在箭头前选择上限/下限的条形长度.

python matplotlib

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

删除每个y轴子图的第一个和最后一个刻度标签

为了创建我使用的5个子图:

`ax = plt.subplots(5, sharex=True)`
Run Code Online (Sandbox Code Playgroud)

然后,我想删除每个y轴子图的第一个和最后一个标签刻度(因为它们相互叠加),我用过:

`plt.setp([a.get_yticklabels()[0::-1] for a in ax[0:5]], visible=False)`
Run Code Online (Sandbox Code Playgroud)

但这只是删除了一些滴答声,我不明白背后的逻辑.

python matplotlib

5
推荐指数
2
解决办法
9015
查看次数

傅里叶平滑数据集

我下面这个链接做我的数据集的平滑.该技术是基于除去傅立叶变换的高阶项变换的信号,所以获得平滑函数的原理.这是我的代码的一部分:

N = len(y)

y = y.astype(float)               # fix issue, see below
yfft = fft(y, N)

yfft[31:] = 0.0                   # set higher harmonics to zero
y_smooth = fft(yfft, N)

ax.errorbar(phase, y, yerr = err, fmt='b.', capsize=0, elinewidth=1.0)
ax.plot(phase, y_smooth/30, color='black') #arbitrary normalization, see below
Run Code Online (Sandbox Code Playgroud)

然而,有些事情不正常工作.实际上,您可以检查结果图: 在此输入图像描述 蓝点是我的数据,而黑线应该是平滑的曲线.

首先,我必须y通过以下讨论转换我的数据数组.

其次,我只是随意归到比较数据的曲线,因为我不知道为什么原来的曲线有值比数据点高得多.

最重要的是,曲线就像数据点的"镜面",我不知道为什么会发生这种情况.这将是巨大的,有一些建议特别是第三点,一般多如何使用这一技术为我的特定数据集形状优化平滑.

python fft scipy smoothing

5
推荐指数
2
解决办法
7326
查看次数

定义偏斜高斯函数,在拟合后返回两个参数

我知道这些问题已经被问了几次,但我仍然无法得到它:我想定义一个返回多个参数的函数.

我编写了以下代码来将数据拟合到偏斜的高斯函数:

def skew(x, sigmag, mu, alpha, c, a):
    normpdf = (1/(sigmag*np.sqrt(2*math.pi)))*np.exp(-(np.power((x-mu),2)/(2*np.power(sigmag,2))))
    normcdf = (0.5*(1+sp.erf((alpha*((x-mu)/sigmag))/(np.sqrt(2)))))
    return 2*a*normpdf*normcdf + c

popt, pcov = curve_fit(skew, xdata, ydata, p0=(5.5, 57636., 4.5, 0.0001, 0.01))
y_fit= skew(xdata, popt[0], popt[1], popt[2], popt[3], popt[4])
Run Code Online (Sandbox Code Playgroud)

但是,我的想法是获得数据分布的峰值,而不是skew函数返回的平均值作为最佳拟合值之一.因此,我需要mode分配,可以计算为最大值normpdf.

如何normpdf从定义的函数中获取并获得最大拟合数据?

function gaussian python-3.x

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

python中的正交距离回归:返回值的含义

我正在关注正交距离回归方法来拟合因变量和自变量的误差数据。

我用一条简单的直线拟合数据,我的模型是 y = ax + b.

现在,我可以编写代码并绘制拟合数据的线,但我无法读取结果:

Beta: [ 2.08346947  0.0024333 ]
Beta Std Error: [ 0.03654482  0.00279946]
Beta Covariance: [[  2.06089823e-03  -9.99220260e-05]
[ -9.99220260e-05   1.20935366e-05]]
Residual Variance: 0.648029925546
Inverse Condition #: 0.011825289654
Reason(s) for Halting:
   Sum of squares convergence
Run Code Online (Sandbox Code Playgroud)

Beta只是包含我的模型参数值的数组(a, b),并且Beta Std Error相关错误。

关于其他值,我不知道它们的含义。

特别是,我想知道哪一个表示拟合优度,就像卡方一样,当一个只拟合因变量的误差时。

python scipy

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

用偏斜高斯拟合直方图

我想用倾斜的高斯拟合直方图。我从文本文件中获取数据:

rate, err = loadtxt('hist.dat', unpack = True)
Run Code Online (Sandbox Code Playgroud)

然后将它们绘制为直方图:

plt.hist(rate, bins= 128)
Run Code Online (Sandbox Code Playgroud)

这个直方图有一个偏斜的高斯形状,我想适合。我可以用一个简单的高斯来做到这一点,因为scipy包含了这个函数,但没有倾斜。我该如何继续?

可能返回的拟合优度测试是最好的。

python histogram curve-fitting scipy

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

删除两个相同长度数组中的nan AND对应元素

我有两个相同长度的列表,我可以转换为数组以使用numpy.stats.pearsonr方法.现在,这些列表的一些元素是nan,因此不能用于该方法.在我的情况下,最好的办法是删除这些元素,以及另一个列表中的相应元素.是否有实用和pythonic的方式来做到这一点?示例:我有

[1 2 nan 4 5 6 ][1 nan 3 nan 5 6]

最后我需要

[1 5 6 ]

[1 5 6 ]

(这里的数字代表职位/指数,而不是我正在处理的实际数字).编辑:这里棘手的部分是nan在一个数组中没有s的列表/数组和在另一个数组中对应nans的元素,反之亦然.虽然它当然可以通过操作数组来完成,但我确信有一种清晰且不过于复杂的方式以pythonic方式完成它.

python arrays numpy python-3.x

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