这是我的阵法:
array = {(0,0):[1], (0,1):[0], (0,2):[1], (0,3):[0], (0,4):[1], (0,5):[0],
(1,0):[1], (1,1):[0], (1,2):[1], (1,3):[0], (1,4):[1], (1,5):[0]}
有没有人知道一种方法,可以把x坐标为0的地方过滤成这样一个单独的数组。你知道吗
filtered_array1 = {(0,0):[1], (0,1):[0], (0,2):[1], (0,3):[0], (0,4):[1], (0,5):[0]}
类似地,有没有一种方法可以过滤链接到坐标的框,比如当它等于1时;像这样
filtered_array2 = {(0,0):[1], (0,2):[1], (0,4):[1], (1,0):[1], (1,2):[1], (1,4):[1]}
您可以使用dictionary comprehensions。你知道吗
这也是dictionary,而不是list或(numpy)数组。你知道吗
你可以使用两个听写理解这两个。(侧注:“与坐标相连的框”称为列表)
此外,正如pm2ring所评论的,dict理解只能构建一个过滤数组,但是构建多个数组需要多次迭代原始数组,这使得效率低下。您可以使用传统的for循环。你知道吗
正如
timeit
所证明的,前者返回的timeit值为0.003447920083999634
后者只有0.002893589437007904
。虽然现在差别不大,但是当你有3个,4个,或者10个过滤的数组时,数组会变得更大。差别将是巨大的。你知道吗在这里试试:https://ideone.com/rSvC0i
相关问题 更多 >
编程相关推荐