首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将数组元素插入矩阵

将数组元素插入矩阵
EN

Stack Overflow用户
提问于 2019-06-27 08:33:42
回答 2查看 167关注 0票数 -1

元素如何从(仅取值范围3到8)

代码语言:javascript
复制
a = np.array([1,2,3,4,5,6,7,8,9])

代码语言:javascript
复制
A = np.array([[0,0,0],
              [0,0,0]])

理想的输出应该是:

代码语言:javascript
复制
A = ([[3,4,5],
      [6,7,8]])
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-27 08:48:00

一种可能的技术是使用slicingreshaping,假设您有一个现有的numpy数组a

起始数组

代码语言:javascript
复制
>>> a = np.array([1,2,3,4,5,6,7,8,9])
>>> a
array([1, 2, 3, 4, 5, 6, 7, 8, 9])

切片

代码语言:javascript
复制
>>> A = a[2:-1]
>>> A
array([3, 4, 5, 6, 7, 8])

重塑

代码语言:javascript
复制
>>> A.reshape((2, 3))
>>> A
array([[3, 4, 5],
       [6, 7, 8]])

上面的解决方案假设您知道在进行切片时要选择哪个索引。在本例中,我假设我们知道元素3出现在第二个索引位置,我假设我们知道最后一个所需的元素8出现在数组中倒数第二个位置(在索引-1处)。为了清晰起见:切片从给定的索引处开始,但直到并且不包括第二个索引位置,并且通常更容易找到接近列表末尾的索引位置,使用负索引号向后计数,就像我在这里所做的那样。另一种方法是使用最后一个元素的索引位置,它是一个8

A = a[2:8]

一个简单的解决方案是以菊花链的方式将方法调用链接在一起:

起始数组

代码语言:javascript
复制
>>> a = np.array([1,2,3,4,5,6,7,8,9])
>>> a
array([1, 2, 3, 4, 5, 6, 7, 8, 9])

切片和重塑

代码语言:javascript
复制
>>> A = a[2:-1].reshape((2, 3))
>>> A
array([[3, 4, 5],
       [6, 7, 8]])
票数 0
EN

Stack Overflow用户

发布于 2019-06-27 08:36:35

代码语言:javascript
复制
np.arange(3, 9).reshape((2, 3))  

输出

代码语言:javascript
复制
array([[3, 4, 5],
       [6, 7, 8]])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56782505

复制
相关文章

相似问题

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