首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从变量进行Numpy切片

从变量进行Numpy切片
EN

Stack Overflow用户
提问于 2012-09-27 16:11:11
回答 2查看 9.1K关注 0票数 19

我正在尝试使用变量中预定义的切片来对numpy数组进行切片。这是可行的:

代码语言:javascript
复制
b = fromfunction(lambda x,y: 10*x+y, (5,4),dtype=int) # Just some matrix

b[1:3,1:3]
# Output:
# array([[11, 12],
#       [21, 22]])

但我想做的是这样的事情:

代码语言:javascript
复制
slice = "1:3,1:3"
b[slice]
# Output:
# array([[11, 12],
#       [21, 22]])

切片变量的类型对我来说并不重要,我只是使用一个字符串作为示例。如何保存像那样的切片说明符?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-27 16:16:52

您可以使用内置的slice函数

代码语言:javascript
复制
s = slice(1,3)
b[s,s]

ds = (s,s)
b[ds]
票数 25
EN

Stack Overflow用户

发布于 2012-09-27 17:29:17

numpy.s_ and numpy.index_exp提供了一种方便的方法来实现这一点:

代码语言:javascript
复制
the_slice = numpy.index_exp[1:3, 1:3]
b[the_slice]

对于slice、元组、NoneEllipsis的组合,它们不能做任何您不能做的事情,但是它们允许您使用与对数组切片完全相同的语法( s_index_exp之间唯一的区别是,对于一维切片,s_返回切片对象,而index_exp将其包装在元组中)。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12616821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档