在第n项处分裂numpy向量

14ifxucb  于 2023-03-30  发布在  其他
关注(0)|答案(3)|浏览(116)

我有一个numpy vector X,它是m乘1。我想在第n项之后将它拆分为2个向量,即1 - n将在第一个向量中,n+1 - m将在第二个向量中。我该怎么做?我无法让numpy.split工作。

ac1kyiln

ac1kyiln1#

简单的索引方案就足够了

>>> import numpy as np
>>> m, n = 8, 3
>>> arr = np.arange(m).reshape(m,1)  + 100
>>> arr
array([[100],
       [101],
       [102],
       [103],
       [104],
       [105],
       [106],
       [107]])
>>> arr1 = arr[:n,:]
>>> arr1
array([[100],
       [101],
       [102]])
>>> arr2 = arr[n:,:]
>>> arr2
array([[103],
       [104],
       [105],
       [106],
       [107]])
k3bvogb1

k3bvogb12#

使用所需的n值制作切片

import numpy as np

v = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])

n = 5
v1 = v[0:n]
v2 = v[n:]
print(v1)
print(v2)
ttygqcqt

ttygqcqt3#

您可以使用array_split

import numpy as np

a = np.arange(10)
N = 4

a1, a2 = np.array_split(a, [N])

输出:

# a1
array([0, 1, 2, 3])

# a2
array([4, 5, 6, 7, 8, 9])
高维
import numpy as np

a = np.arange(10)[:, None]
N = 4

a1, a2 = np.array_split(a, [N], axis=0)

输出:

# a1
array([[0],
       [1],
       [2],
       [3]])
# a2
array([[4],
       [5],
       [6],
       [7],
       [8],
       [9]])

相关问题