小编our*_*nos的帖子

scipy optimize 中忽略终止容差

我有一个简单的优化问题,使用一些特定的数据,使scipy.optimize.minimize忽略tol参数。根据我的理解,从文档中,tol确定了“终止的容忍度”,即目标函数可接受的最大误差(我错了吗?)。然而,在下一个工作示例中,当tol设置为 0.1 或其他较小数字时,即使目标函数 > ,优化也会以“优化成功终止”消息结束tol。这是 Scipy 方法中的错误还是我在这里误解了什么?

var1优化问题:我需要对和进行线性组合var2,这是两个时间序列,通过参数Btd和 来缩放它们Bta。我需要线性组合的平均值近似于目标值Target,即标量。np.mean(Btd*var1 + Bta*var2)所以我只是最小化 和之间的绝对差异Target。约束条件是缩放系数必须 >0,并且均值之比np.mean(Btd*var1)/np.mean(Bta*var2)应近似于函数gi/(1-gi),其中gi是区间 [0,1] 中的标量。

可重现的代码:

import numpy as np
import scipy.optimize as opt

# The data that exactly reproduce the error:
time = np.arange(1979,2011)
var2=np.array([ 88.95705521,  74.5398773 ,  72.08588957,  65.64417178,
        50.        ,  72.39263804,  77.3006135 ,  72.08588957,
        64.41717791,  96.62576687, …
Run Code Online (Sandbox Code Playgroud)

optimization scipy python-3.x scipy-optimize-minimize

6
推荐指数
0
解决办法
4258
查看次数

在 NorthPolarStereo 投影中使用 Cartopy 绘制圆圈

我想在 Cartopy 中以 NorthPolarStereo 投影绘制圆圈,并以经纬度单位提供中心和半径。

类似和优秀的问题和答案可用于此处的底图,以及此处的正射投影中的Cartopy找到有关正射投影中的 Cartopy 的问题和答案。但是,我想在 Cartopy 中使用 NorthPolarStereo。尝试后一种方法,只需更改投影即可使圆固定在北极,忽略您为其中心提供的坐标。

关于如何使用 NorthPolarStereo 投影在 Cartopy 中绘制圆圈的任何想法,并以纬度、经度提供其中心和半径?

import numpy as np
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

# example: draw circle with 45 degree radius around the North pole
lat = 72 
lon = 100
r = 20

# Define the projection used to display the circle:
proj = ccrs.NorthPolarStereo(central_longitude=lon)


def compute_radius(ortho, radius_degrees):
    phi1 = lat + …
Run Code Online (Sandbox Code Playgroud)

projection matplotlib cartopy

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

如何在 Matplotlib/Python 中使用虚线负数默认样式 + 线条颜色?

使用 Python/Matplotlib 绘制等高线图时,默认行为(对于 1 种颜色)是用虚线表示负值。这是我想要的功能。但是,如果我设置线条的颜色,所有线条都会被绘制为实心。我想将虚线底片和自定义颜色结合起来。

如何绘制彩色线条并保持负虚线样式?

下面,我复制(稍作修改)本教程中的示例:https://www.oreilly.com/library/view/python-data-science/9781491912126/ch04.html

import matplotlib
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 5, 50)
y = np.linspace(0, 5, 40)
X, Y = np.meshgrid(x, y)
def f(x, y):
    return np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x)
Z = f(X, Y)

# Default: 1 color, negatives are dashed
plt.contour(X, Y, Z, colors='black')
plt.show()

# Set colormap: all lines are solid
plt.contour(X, Y, Z, cmap='RdBu')
plt.show()

# Set individual colors: …
Run Code Online (Sandbox Code Playgroud)

python visualization matplotlib contour

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

在vim中查找并替换为星号(*)

我有一个文本文件,其中列出了目录中的文件名(以下摘录)。项目名称是f后跟3位数字。

 771M Jan 22 02:35 f186
 1.2G Jan 22 02:35 f172
 771M Jan 22 02:36 f206
 771M Jan 22 02:37 f151
 771M Jan 22 02:37 f029
 1.2G Jan 22 02:38 f162
 771M Jan 22 02:40 f168
 1.2G Jan 22 02:42 f244
...
Run Code Online (Sandbox Code Playgroud)

我想有一个列表 3位数的号码。因此,我需要通过“无”替换前面的列。由于前几行的内容对于每一行都是不同的,因此我将使用星号,并且以下方法对我来说在VIM中似乎是合理的:

:%s/*f/
Run Code Online (Sandbox Code Playgroud)

在这里,我将所有内容替换为f,然后将其替换为空。

为什么不起作用?我该如何在VIM中做到这一点?

vim replace

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

Sklearn RANSAC 没有拦截

我正在尝试使用 sklearn 的RANSAC: RANdom SAmple Consensus算法拟合一个没有截距的线性模型(强制截距为 0)。在LinearRegression 中,可以轻松设置fit_intercept=False. 但是,RANSAC 的可能参数列表中似乎不存在此选项。这个功能没有实现吗?应该怎么做?sklearn 的 RANSAC 有哪些替代方法可以客观地选择内点和离群点,允许将截距设置为 0?

实现应该是这样的,但它引发了一个错误:

from sklearn.linear_model import RANSACRegressor

ransac_regressor = RANSACRegressor(fit_intercept=False)
Run Code Online (Sandbox Code Playgroud)

python linear-regression scikit-learn

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

如何限制 Cartopy 的 LambertConformal 中的经度范围并保持圆锥曲线外观?

我想制作一个专注于欧洲的兰伯特圆锥图。我可以执行以下操作:

import cartopy.crs as ccrs
import matplotlib.pyplot as plt

proj = ccrs.LambertConformal(central_longitude=20.0, central_latitude=45.0, cutoff=30)
fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(111, projection=proj)
ax.coastlines(resolution='110m')
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

然而,这向东部和西部延伸太多了。我想将其缩小到 10W 到 40E 之间。如果我添加一条线ax.set_extent([-10,40,30,90], crs=ccrs.PlateCarree()),我就会失去上面绘图的圆锥形“外观”:

在此输入图像描述

如何正确减小 Cartopy 的 LambertConformal 中的纵向范围,同时仍然保持圆锥曲线的外观?我可以给出经度边距并在两条经线之间调整第一个图形,而不是将其放入此矩形中吗?我想象两条经线之间有一个三角形,在低纬度界限有一个拱形。

python gis matplotlib cartopy

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