我正在尝试查看是否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=建筑物等)。另一个数组来自表示某种政治边界(例如地块、人口普查区、城镇等)的地理数据集(栅格)。我正在尝试获取一个表格,其中将每个唯一的政治边界区域(数组值表示唯一的 id)列为行,并将每个土地覆盖类的每个边界内的像素总数列为列。