元素如何从(仅取值范围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]])
发布于 2019-06-27 08:48:00
一种可能的技术是使用slicing
和reshaping
,假设您有一个现有的numpy数组a
起始数组
>>> 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]])
发布于 2019-06-27 08:36:35
np.arange(3, 9).reshape((2, 3))
输出
array([[3, 4, 5],
[6, 7, 8]])
https://stackoverflow.com/questions/56782505
复制相似问题