【发布时间】:2013-12-07 12:26:09
【问题描述】:
显然,有很多关于索引错误的线程。但我找不到能帮助我的人。
我使用 numpy.loadtxt 读取函数 f(a,b)。
a, b, f = np.loadtxt(filename, delimiter=' ', usecols=(0,1,2), unpack=True)
为了获得二维图,我在另一个线程中找到了一个解决方案,您可以在其中栅格 (a,b) 平面并将整数元组 (ida, idb) 与每个点相关联。
ncols, nrows = np.round((a.max() - a.min()) / da).astype(np.int) , np.round((b.max() - b.min()) / db).astype(np.int)
ida = np.round((a - a.min()) / da - 1).astype(np.int)
idb = np.round((b - b.min()) / db - 1).astype(np.int)
然后将 f 放入 a 网格中。
grid = np.empty((nrows, ncols), dtype=np.float)
grid[idb, ida] = f
这适用于多个数据文件。但现在,突然就不行了。相反,它在到达 grid[ida,idb]-line 时报告标题中的错误。所以我在数据文件中寻找错误,但我找不到任何错误。我试过了
print ida.shape
print idb.shape
print f.shape
返回
(3107,)
(3107,)
(3107,)
所以所有数组的大小都匹配得很好,尤其是它们都不是空数组。我在这里错过了什么?
谢谢, 爱丽丝
【问题讨论】:
-
有趣的对象是网格...
-
是的,我会调查的。谢谢。
-
你能发布完整的错误回溯吗?
-
感谢seberg的建议,我发现了错误:在loadtxt中我从文件中导入了错误的列。一个碰巧是恒定的。所以我得到了nrows = 0。而 grid 是 0-size-array。
-
我无法在没有答案的情况下关闭线程。直到 8 小时过去,我才能自己写答案。
标签: python arrays numpy indexing