实现一个函数的最佳方法是什么,该函数接受任意数量的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) 我正在尝试创建带有离散色条的pcolormesh图。输出应满足以下条件:
我快到了,但是'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) wls_prediction_std返回我拟合模型数据的标准偏差和置信区间.我需要知道从协方差矩阵计算置信区间的方式.(我已经尝试通过查看源代码来解决这个问题,但却无法做到)我希望你们中的一些人可以通过写出wls_prediction_std背后的数学表达来帮助我.
如果这不属于这里,我很抱歉,但我正在寻找一种方法来描述我的代码的数学背景。使用 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 的建议。我只是希望可能有一些我没有想到的其他解决方案。
这个问题可能是一个非常简单的解决方案,但我找不到它.我想绘制一个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的数据):
