小编Luk*_*kas的帖子

为muliple数组实现numpy.in1d的最有效方法

实现一个函数的最佳方法是什么,该函数接受任意数量的1d数组并返回包含匹配值索引(如果有)的元组.

这是我想要做的一些伪代码:

a = np.array([1, 0, 4, 3, 2])
b = np.array([1, 2, 3, 4, 5])
c = np.array([4, 2])

(ind_a, ind_b, ind_c) = return_equals(a, b, c)
# ind_a = [2, 4]
# ind_b = [1, 3]
# ind_c = [0, 1]

(ind_a, ind_b, ind_c) = return_equals(a, b, c, sorted_by=a)
# ind_a = [2, 4]
# ind_b = [3, 1]
# ind_c = [0, 1]

def return_equals(*args, sorted_by=None):
    ...
Run Code Online (Sandbox Code Playgroud)

python arrays sorting indexing numpy

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

在带有离散色条的pcolormesh图中使用扩展

我正在尝试创建带有离散色条的pcolormesh图。输出应满足以下条件:

  1. 第一层应该是白色的
  2. 数据应在某种程度上切断
  3. 截止上方的数据应具有单独的颜色(即颜色图的最后一种颜色)

我快到了,但是'extend'关键字的行为不符合我的期望(“ max-arrow”中的颜色与上一级的颜色相同-参见示例)。如何将“ vmax”以上的值设置为单独的颜色(即,我使用的任何颜色图的最后一种颜色)

import numpy as np
import xarray as xr
import matplotlib as mpl
import matplotlib.pyplot as plt

ds = xr.Dataset(
    coords={'lon': np.arange(-180, 180, 10),
            'lat': np.arange(-85, 90, 10)},
    data_vars={'data': (('lat', 'lon'), np.random.rand(18, 36))})

cmap = plt.cm.get_cmap('Reds')
cmap.set_under('w')
# cmap.set_over()  # do something here?
levels = np.arange(0, .7, .1)
ds.data.plot.pcolormesh(
    cmap=cmap,
    vmin=levels[1],
    # vmax=levels[-1],
    extend='max',
    norm = mpl.colors.BoundaryNorm(levels, ncolors=cmap.N, clip=False)
)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我正在使用xarray,但是plt.pcolormesh的行为是相同的:

p = plt.pcolormesh(
    np.arange(-180, 180, 10),
    np.arange(-85, 90, 10),
    np.random.rand(18, 36),
    cmap=cmap, …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib colorbar colormap

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

statsmodels的数学背景wls_prediction_std

wls_prediction_std返回我拟合模型数据的标准偏差和置信区间.我需要知道从协方差矩阵计算置信区间的方式.(我已经尝试通过查看源代码来解决这个问题,但却无法做到)我希望你们中的一些人可以通过写出wls_prediction_std背后的数学表达来帮助我.

python statsmodels

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

for 循环的简洁数学符号

如果这不属于这里,我很抱歉,但我正在寻找一种方法来描述我的代码的数学背景。使用 numpy 我对两个多维数组求和:

a.shape = (10, 5, 2)
b.shape = (5, 2)
c = a + b
c.shape = (10, 5, 2)
Run Code Online (Sandbox Code Playgroud)

是否有一个纯粹的数学符号(所以没有在我的文本中引入 for 循环或 numpy 约定)?我试图避免的是必须写这样的东西:

c_{1, y, z} = a_{1, y, z} + b_{y, z}

c_{2, y, z} = a_{2, y, z} + b_{y, z}

...

c_{10, y, z} = a_{10, y, z} + b_{y, z}
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

编辑:我在文档中使用 LaTeX,所以索引没有问题。我目前或多或少地使用了 Tobias 的建议。我只是希望可能有一些我没有想到的其他解决方案。

arrays for-loop numpy notation

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

在matplotlib中具有2种不同步长的Contourplot

这个问题可能是一个非常简单的解决方案,但我找不到它.我想绘制一个contourf图,其中我的数据的一部分按顺序1的步长变化,另一部分按顺序100的步骤变化.现在我试图给出这样的轮廓级别:

contour_levels = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 200, 300, 400]
Run Code Online (Sandbox Code Playgroud)

然而,这导致结果是,第11个级别都具有与matplotlib相同的颜色,以某种方式将其标准化为最大值.我怎样才能使每个级别在我的色彩图方面同等重要?

非常感谢HYRY,你的答案解决了我的问题.这是情节和实施后的情况(我调整了一些水平;来自GOZCARDS团队/ NASA的数据): 水蒸气时间序列bevore 水蒸汽时间序列后

python matplotlib contour

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