元素如何(仅取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]])
答案 0 :(得分:2)
np.arange(3, 9).reshape((2, 3))
输出
array([[3, 4, 5],
[6, 7, 8]])
答案 1 :(得分:0)
一种可能的技术是,假设您已有一个现有的numpy数组a
,请使用slicing
和reshaping
:
>>> 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]])