【发布时间】:2016-04-14 05:08:50
【问题描述】:
我的问题
1。简介
- ka & kb 是两个二维数组,都是 31*37 的形状
- 它们包含 2 个值:0 和 1
- 独立性:只有ka[i, j] = 1时的网格量
使用np.mask,它们显示如下:
http://i4.tietuku.com/29adccd90484fe34.png
代码在这里:
ka_select = np.ma.masked_less(ka,0.001)
pa =plt.pcolor(kb_select,cmap="Set1",alpha =0.7,facecolor = "k",edgecolor = 'k',zorder =1)
kb_select = np.ma.masked_less(kb,0.001)
pb =plt.pcolor(kb_select,cmap="Set1",alpha =0.7,facecolor = "k",edgecolor = 'k',zorder =1)
2。我的早期作品
- 与两个数组 ka 和 kb 进行比较。
- 如果 index[i,j] 中的值都等于 1,则表示这两个数组在这个网格中有重叠。
- 计算重叠频率。
我写了一些关于比较两个二维数组的代码
### repeat I defined is the estimate matrix to represent overlap or not in [i,j] position
repeat = np.zeros(ka.shape[0]*ka.shape[0]).reshape(ka.shape[0],ka.shape[1])
for i in range(0,ka.shape[0],1):
for j in range(0,ka.shape[1],1):
if (ka[i,j] == 1) & (kb[i,j] == 1) :
repeat [i,j]=1
else:
repeat[u,v] = 0
rep.append(repeat.sum())
- rep:这两个二维数组的重叠频率。
http://i4.tietuku.com/7121ee003ce9d034.png
3。我的问题
当有两个以上的二维numpy数组都具有相同的形状且值为(0,1)时,如何对重叠频率求和?
我可以按顺序比较多数组,但重复网格会被重新计算
更多解释
我想在 ka = 1 但 (kb & kc & ...) != 1 at grid[i,j] 时对数组 ka 的数量求和(我称之为 independence 为如标题所示)。
如果 ka 只和 kb 比较,我可以使用 rep 来实现,我还没有想到处理超过 2 个数组的方法
【问题讨论】:
-
您的图片未显示。你能用这些更新你的问题吗?它们可以帮助我们更好地理解问题。
-
感谢您的谨慎,我重新上传了
标签: python arrays numpy matplotlib