- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试查看 numpy.histogram2d
是否会为我将 2 个数组中的数据交叉制表。我以前从未使用过此功能,但遇到了一个我不知道如何修复的错误。
import numpy as np
import random
zones = np.zeros((20,30), int)
values = np.zeros((20,30), int)
for i in range(20):
for j in range(30):
values[i,j] = random.randint(0,10)
zones[:8,:15] = 100
zones[8:,:15] = 101
zones[:8,15:] = 102
zones[8:,15:] = 103
np.histogram2d(zones,values)
此代码会导致以下错误:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-18-53447df32000> in <module>()
----> 1 np.histogram2d(zones,values)
C:\Python27\ArcGISx6410.2\lib\site-packages\numpy\lib\twodim_base.pyc in histogram2d(x, y, bins, range, normed, weights)
613 xedges = yedges = asarray(bins, float)
614 bins = [xedges, yedges]
--> 615 hist, edges = histogramdd([x,y], bins, range, normed, weights)
616 return hist, edges[0], edges[1]
617
C:\Python27\ArcGISx6410.2\lib\site-packages\numpy\lib\function_base.pyc in histogramdd(sample, bins, range, normed, weights)
279 # Sample is a sequence of 1D arrays.
280 sample = atleast_2d(sample).T
--> 281 N, D = sample.shape
282
283 nbin = empty(D, int)
ValueError: too many values to unpack
这是我想要完成的:
我有 2 个数组。一个数组来自表示土地覆盖类(例如 1=树、2=草、3=建筑物等)的地理数据集(栅格)。另一个数组来自表示某种政治边界(例如地 block 、人口普查区、城镇等)的地理数据集(栅格)。我正在尝试获取一个表格,其中将每个唯一的政治边界区域(数组值表示一个唯一的 ID)列为行,每个土地覆盖类的每个边界内的像素总数列为列。
最佳答案
我假设 values
是土地覆盖,zones
是政治边界。您可能想要使用 np.bincount
,它就像一个特殊的直方图,其中每个 bin 的间距和宽度正好为一个。
import numpy as np
zones = np.zeros((20,30), int)
zones[:8,:15] = 100
zones[8:,:15] = 101
zones[:8,15:] = 102
zones[8:,15:] = 103
values = np.random.randint(0,10,(20,30)) # no need for that loop
tab = np.array([np.bincount(values[zones==zone]) for zone in np.unique(zones)])
不过,如果您小心处理 bin 边缘,则可以使用直方图更简单地完成此操作:
np.histogram2d(zones.flatten(), values.flatten(), bins=[np.unique(zones).size, values.max()-values.min()+1])
其工作方式如下。最简单的示例是查看所有值而不考虑区域:
np.bincount(values)
这会为您提供一行,其中包含每个值(0 到 10)的计数。下一步是查看区域。对于一个区域,您只有一行,它将是:
zone = 101 # the desired zone
mask = zone==zones # a mask that is True wherever your zones map matches the desired zone
np.bincount(values[mask]) # count the values where the mask is True
现在,我们只想对 map 中的每个区域执行此操作。您可以使用以下命令获取区域 map 中唯一值的列表
zs = np.unique(zones)
并通过列表理解循环遍历它,其中每个项目都是上面的行之一:
tab = np.array([np.bincount(values[zones==zone]) for zone in np.unique(zones)])
然后,你的表看起来像这样:
print tab
# elements with cover =
# 0 1 2 3 4 5 6 7 8 9 # in zone:
[[16 11 10 12 13 15 11 7 13 12] # 100
[13 23 15 16 24 16 24 21 15 13] # 101
[10 12 23 13 12 11 11 5 11 12] # 102
[19 25 20 12 16 19 13 18 22 16]] # 103
最后,您可以在 matplotlib 中绘制它:
import matplotlib.pyplot as plt
plt.hist2d(zones.flatten(), values.flatten(), bins=[np.unique(zones).size, values.max()-values.min()+1])
关于python - numpy.histogram2d 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19235372/
我正在通过阅读 doc 和 src 来学习 d3-array。 histogram.value's doc很详细,但我还是觉得很难掌握。 The source code有助于更好地理解文档,但我仍
我正在尝试使用 qmake 和 make 为 uEye 相机编译相机软件。 我的 qmake 命令运行正常,但是当我在命令行中键入 make 时出现以下错误 make[1]: Entering dir
Elasticsearch Histogramfacet似乎不支持 all_terms = true(即:即使 count=0 也返回 facetvalue/bucket) 这是正确的吗? 最佳答案
我知道我可以用 pandas 绘制直方图: df4 = pd.DataFrame({'a': np.random.randn(1000) + 1}) df4['a'].hist() 但是我怎样才能从这
我有一个整个数据集的直方图,我想将它与该数据的过滤子集的直方图进行比较。我可以在两个单独的工作表中执行此操作,然后在仪表板中并排显示它们。 有没有办法将这两个直方图组合成一个具有公共(public)轴
我有一个小型办公网络,我遇到了巨大的互联网链接延迟。我们有一个简单的网络拓扑结构:一台计算机配置为运行 ubuntu 服务器 10.10 的路由器,2 个网卡(一个连接互联网,另一个连接办公网络)和一
我正在研究 Google Tensorboard,我对直方图的含义感到困惑。我阅读了教程,但我似乎不清楚。如果有人能帮助我弄清楚 Tensorboard 直方图每个轴的含义,我真的很感激。 来自 Te
根据Prometheus文档,为了使用直方图度量具有95%的百分位数,我可以使用以下查询: histogram_quantile(0.95, sum(rate(http_request_duratio
我正在为图片上的直方图编写一个 CUDA 内核,但我不知道如何从内核返回一个数组,并且当其他线程读取它时数组会发生变化。有什么可能的解决方案吗? __global__ void Hist( T
使用 elasticsearch,我想在我的模型中获取价格字段的直方图分面。在事先不知道最低和最高价格的情况下,我想要的是让直方图覆盖整个价格范围,并具有一定数量的间隔,比如 10。我可以从文档中看到
我在 NetLogo 5.0.5 的模型中创建了一个变量的直方图,但直方图一直显示一条线而不是我想要的条。我在锅设置区域使用 set-histogram-num-bars n,但没有任何变化。在模型库
我正在构建一个使用 CIAreaHistogram 的应用程序核心图像过滤器。我使用 inputCount用于测试的值(桶数)为 10,以及 inputScale值为 1。 我得到 CIImage对于
在 R 中,使用 ecdf我可以绘制经验累积分布函数 plot(ecdf(mydata)) 并与 hist我可以绘制数据的直方图 hist(mydata) 如何在同一个图中绘制直方图和 ecdf? 编
给定每小时都有数据点的(电力)市场数据的时间序列,我想显示一个包含每小时数据的所有时间/时间范围平均值的条形图,以便分析师可以轻松地将实际价格与所有时间平均值进行比较(一天中哪个小时最贵/最便宜)。
我已经通过以下命令生成了直方图: db.mydb.aggregate([{ $bucketAuto: { groupBy: "$userId", buckets: 1e9 } }]) 假设我的唯一身份
我是 influxdb 中的 flux 新手,正在尝试编写用于生成直方图的 flux 查询。文档中给出的函数 https://docs.influxdata.com/flux/v0.24/functi
对于在多实例上运行的应用程序,我找不到任何文章描述使用 datadog 直方图与 datadog 分布相比的优势。有人可以帮助我在这两者之间做出最佳选择吗? 最佳答案 我在 DataDog 文档中发现
分箱过程是点特征直方图估计的一部分,结果是 b^3如果仅使用三个角度特征(alpha、phi、theta),则为 bins,其中 b 是 bins 的数量。 为什么是这样b^3而不是 b * 3 ?
我想测量 16 位图像中的像素强度。因此,我制作了一个 numpy 直方图,显示像素数与灰度值从 0 到 65535(16 位)的关系。我用的是 hist= numpy.histogram(grays
我正在使用这个: http://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html 我有一个列表a,我想这样使用: nu
我是一名优秀的程序员,十分优秀!