我有一个功能returnValuesAtTime是返回三个lists- x_vals,y_vals和swe_vals.所有三个列表具有相同的长度,并且每个元素swe_vals对应于x-valuefrom x_vals和y-valuefrom y_vals.我希望生成一个带有图例的热图,该图例使用(x,y)坐标和swe_vals强度.
我写了以下代码:
def plotValuesAtTimeMap(t):
x_vals,y_vals,swe_vals=returnValuesAtTime(t)
x_points=len(x_vals)
y_points=len(y_vals)
xx=np.linspace(x_vals[0],x_vals[-1],x_points)
yy=np.linspace(y_vals[0],y_vals[-1],y_points)
fig,ax=plt.subplots()
im=ax.pcolormesh(xx,yy,z)
fig.colorbar(im)
ax.axis('tight')
plt.show()
Run Code Online (Sandbox Code Playgroud)
一旦使用所获得的三个列表returnValuesAtTime(t),我带的长度x_vals和y_vals.然后我使用这些来生成用于x和y方向上的间距,是限值的第一和最后一个元素x_vals和y_vals.然后我尝试生成colormesh.但这给了我一个colormesh没有价值观的空洞.
可能出了什么问题?使用3D numpy数组而不是三个列表会解决问题吗?
每个列表的前10个元素是:
x_vals[0:10]
[439936.86573189893,
439936.86573189893,
439936.86573189893,
439936.86573189893,
439936.86573189893,
439936.86573189893,
439936.86573189893,
439936.86573189893,
439936.86573189893,
439936.86573189893]
y_vals[0:10]
[4514018.2797159087,
4513898.2797159087,
4513778.2797159087,
4513658.2797159087,
4513538.2797159087,
4513418.2797159087,
4513298.2797159087,
4513178.2797159087,
4513058.2797159087,
4512938.2797159087]
swe_vals[0:10]
[2.7520323,
2.7456229, …Run Code Online (Sandbox Code Playgroud) 我写了一个简单的Python代码来解决某个水力公式(Manning方程):
import math
def mannings(units,A,P,S,n):
if units=='SI':
k=1.0
elif units=='US':
k=1.49
R=A/P
V=(k/n)*(math.pow(R,(2/3)))*(math.sqrt(S))
Q=A*V
return R,V,Q
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,速度V是从所计算的k,n,R和S.然后使用速度Q通过乘以面积来计算放电A.用户输入单元惯例,A,P,S和n.k是在单位惯例的基础上决定的.
当我使用该功能时mannings('US',1.0618,2.7916,0.02,0.015),我得到了(0.38035535176959456, 14.047854719572745, 14.916012141242343).该R值与R电子表格中计算的值相匹配,但是V并且Q相反.实际V应该7.374638178
和Q应该是7.830634155.
如果有人能告诉我这里出了什么问题,那就太棒了.这是一个非常简单的公式,我猜它应该很容易.
我正在尝试在包含 27 个预测变量的数据帧上为随机森林运行递归特征消除,每个预测变量有 3653 个值。因此,预测器数据框中总共有 98631 个值。我正在使用包caret 中的rfe函数。
require(caret)
require(randomForest)
subsets <- c(1:5, 10, 15, 20, 25)
set.seed(10)
ctrl <- rfeControl(functions = rfFuncs,
method = "repeatedcv",
repeats = 5,
verbose = FALSE,
allowParallel=TRUE)
rfProfile <- rfe(predictors,
y,
sizes = subsets,
rfeControl = ctrl)
Run Code Online (Sandbox Code Playgroud)
我使用allowParallel = TRUE在rfeControl,希望它会在我的Windows机器上运行的并行处理。但我不确定它是否这样做,因为在设置allowParallel=TRUE后我没有看到运行时间有任何减少。这个过程需要很长时间,每次1-2小时后我不得不中断内核。
我如何知道caret是否正在并行运行 RFE?我是否需要为插入符号安装任何其他并行化包以并行运行此过程?
任何帮助/建议将不胜感激!我是机器学习领域的新手,所以我需要一段时间才能弄清楚。
parallel-processing r machine-learning random-forest r-caret