我有一个奇怪行为的例子:
a = list(img_arr[y_coord_1,:])
print a
print np.diff(a)
>>[62, 62, 62, 62, 62, 62, 62, 62, 63, 62, 96, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 66, 63, 64, 64, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 64, 65, 65, 64, 63, 63, 63, 63, 63, 63, 63, 64, 64, 63, 63, 63, 63, 63, 64, 65, 65, 64, 63, 63, 63, 63]
>>[ 0 0 0 0 0 0 0 1 255 34 2 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 224 253 1 0 255
0 0 0 0 0 0 0 0 0 1 1 0 255 255 0 0 0 0
0 0 1 0 255 0 0 0 0 1 1 0 255 255 0 0 0]
现在,当我在终端上运行这个程序时,我得到的正确答案是
^{pr2}$什么样的事情会导致这种情况-我在这个脚本中使用了一些其他编译的库,如果这有关联的话
编辑:我刚刚发现是负数错了,而且上限很可疑。看起来是数据类型问题。。在
.tolist()
是将数组转换为列表(或嵌套列表)的更好方法。它一路把转换带下来。list()
只在一个级别上迭代。而且由于数组已经是iterable了,我不认为list(anarray)
做了任何有用的事情。在从数组开始:
^{pr2}$list()
与此列表理解相同:正确的列表转换
你为什么首先使用
list()
?你不需要它来做diff
。如果溢出是一个问题,则数据类型转换更好。在np.diff
将在获取差异之前将列表转换回数组。在相关问题 更多 >
编程相关推荐