小编sma*_*rld的帖子

使用matplotlib中的3D数据生成热图

我有一个功能returnValuesAtTime是返回三个lists- x_vals,y_valsswe_vals.所有三个列表具有相同的长度,并且每个元素swe_vals对应于x-valuefrom x_valsy-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_valsy_vals.然后我使用这些来生成用于x和y方向上的间距,是限值的第一和最后一个元素x_valsy_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 visualization numpy matplotlib

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

为什么这个Python代码给出了错误的答案?

我写了一个简单的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,RS.然后使用速度Q通过乘以面积来计算放电A.用户输入单元惯例,A,P,Sn.k是在单位惯例的基础上决定的.

当我使用该功能时mannings('US',1.0618,2.7916,0.02,0.015),我得到了(0.38035535176959456, 14.047854719572745, 14.916012141242343).该R值与R电子表格中计算的值相匹配,但是V并且Q相反.实际V应该7.374638178Q应该是7.830634155.

如果有人能告诉我这里出了什么问题,那就太棒了.这是一个非常简单的公式,我猜它应该很容易.

python python-2.x

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

在 Windows 上使用 Caret 并行进行递归特征消除

我正在尝试在包含 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 = TRUErfeControl,希望它会在我的Windows机器上运行的并行处理。但我不确定它是否这样做,因为在设置allowParallel=TRUE后我没有看到运行时间有任何减少。这个过程需要很长时间,每次1-2小时后我不得不中断内核。

我如何知道caret是否正在并行运行 RFE?我是否需要为插入符号安装任何其他并行化包以并行运行此过程?

任何帮助/建议将不胜感激!我是机器学习领域的新手,所以我需要一段时间才能弄清楚。

parallel-processing r machine-learning random-forest r-caret

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