将数组元素插入矩阵

时间:2019-06-27 00:33:42

标签: python arrays matrix

元素如何(仅取3到8)

a = np.array([1,2,3,4,5,6,7,8,9])

转到

A = np.array([[0,0,0],
              [0,0,0]])

理想的输出为:

A = ([[3,4,5],
      [6,7,8]])

2 个答案:

答案 0 :(得分:2)

np.arange(3, 9).reshape((2, 3))  

输出

array([[3, 4, 5],
       [6, 7, 8]])

答案 1 :(得分:0)

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

起始数组

>>> a = np.array([1,2,3,4,5,6,7,8,9])
>>> a
array([1, 2, 3, 4, 5, 6, 7, 8, 9])

切片

>>> A = a[2:-1]
>>> A
array([3, 4, 5, 6, 7, 8])

重塑

>>> A.reshape((2, 3))
>>> A
array([[3, 4, 5],
       [6, 7, 8]])

上述解决方案假定您知道在进行切片时要选择哪个索引。在这种情况下,我假设我们知道元素3出现在第二个索引位置,并且我想知道最后一个所需元素8出现在数组的倒数第二个位置(在索引-1处)。为了清楚起见:切片从给定的索引开始,但一直延伸到第二个索引位置(不包括该位置),并且像我一样,通过使用负索引号向后计数,通常更容易找到靠近列表末尾的索引位置这里。一种替代方法是使用最后一个元素的索引位置,该元素为8

A = a[2:8]

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

起始数组

>>> a = np.array([1,2,3,4,5,6,7,8,9])
>>> a
array([1, 2, 3, 4, 5, 6, 7, 8, 9])

切片和整形

>>> A = a[2:-1].reshape((2, 3))
>>> A
array([[3, 4, 5],
       [6, 7, 8]])
相关问题