Sli*_*ban 42 python arrays numpy
我是Python和numpy的新手.我已经想出如何切割1维序列:arr[start:end]
并访问数组中的元素:el = arr[row][col]
.
尝试类似slice = arr[0:2][0:2]
(在哪里arr
是一个numpy数组)不会给我前两行和列,但重复前两行.我刚才做了什么,以及如何沿着另一个维度切片?
mgi*_*son 61
如果使用numpy
,这很容易:
slice = arr[:2,:2]
Run Code Online (Sandbox Code Playgroud)
或者如果你想要0,
slice = arr[0:2,0:2]
Run Code Online (Sandbox Code Playgroud)
你会得到相同的结果.
*请注意,这slice
实际上是内置类型的名称.一般来说,我建议给你的对象一个不同的"名字".
另一种方法,如果你正在使用列表列表*:
slice = [arr[i][0:2] for i in range(0,2)]
Run Code Online (Sandbox Code Playgroud)
(注意这里的0是不必要的: [arr[i][:2] for i in range(2)]
也可以.).
我在这里做的是我一次取每个所需的行1(arr[i]
).然后我将我想要的列切出该行,并将其添加到我正在构建的列表中.
如果你天真地尝试:arr[0:2]
你获得前两行,如果你再次切片arr[0:2][0:2]
,你只是再切两前一行.
*这实际上也适用于numpy数组,但与我上面发布的"原生"解决方案相比,它会很慢.
归档时间: |
|
查看次数: |
102018 次 |
最近记录: |