我有一个简单的优化问题,使用一些特定的数据,使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) 我想在 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) 使用 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) 我有一个文本文件,其中列出了目录中的文件名(以下摘录)。项目名称是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中做到这一点?
我正在尝试使用 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) 我想制作一个专注于欧洲的兰伯特圆锥图。我可以执行以下操作:
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 中的纵向范围,同时仍然保持圆锥曲线的外观?我可以给出经度边距并在两条经线之间调整第一个图形,而不是将其放入此矩形中吗?我想象两条经线之间有一个三角形,在低纬度界限有一个拱形。
matplotlib ×3
python ×3
cartopy ×2
contour ×1
gis ×1
optimization ×1
projection ×1
python-3.x ×1
replace ×1
scikit-learn ×1
scipy ×1
vim ×1