Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从阵列中删除子阵列_Python_Numpy - Fatal编程技术网

Python 从阵列中删除子阵列

Python 从阵列中删除子阵列,python,numpy,Python,Numpy,我有一个numpy数组a和B A = [ 1, 2, 5, 9.8, 55, 3] B = [ 3, 4] 现在,如何删除数组B的索引A[3]&A[4],然后将它们放在数组A的开头。 所以,我希望我的输出是 A = [9.8, 55, 1, 2, 5, 3] 注意:A和B都是numpy数组 非常感谢您的帮助 非numpy答案 A = [ 1, 2, 5, 9.8, 55, 3] B = [ 3, 4] new_arr = [A[i] for i in B if i<len(A)]

我有一个numpy数组a和B

A = [ 1, 2, 5, 9.8, 55, 3]
B = [ 3, 4] 
现在,如何删除数组B的索引A[3]&A[4],然后将它们放在数组A的开头。 所以,我希望我的输出是

A = [9.8, 55, 1, 2, 5,  3]
注意:A和B都是numpy数组

非常感谢您的帮助

非numpy答案

A = [ 1, 2, 5, 9.8, 55, 3]
B = [ 3, 4]
new_arr = [A[i] for i in B if i<len(A)] + [A[i] for i in range(len(A)) if i not in set(B)]
# [9.8, 55, 1, 2, 5, 3]
A=[1,2,5,9.8,55,3]
B=[3,4]

如果i使用
布尔索引的一种方法是-

mask = np.in1d(np.arange(A.size),B)
out = np.r_[A[mask], A[~mask]]
样本运行-

In [26]: A = np.array([ 1, 2, 5, 9.8, 55, 3])

In [27]: B = np.array([ 3, 4])

In [28]: mask = np.in1d(np.arange(A.size),B)

In [29]: np.r_[A[mask], A[~mask]]
Out[29]: array([  9.8,  55. ,   1. ,   2. ,   5. ,   3. ])
In [36]: idx = np.setdiff1d(np.arange(A.size),B)

In [37]: np.r_[A[B], A[idx]]
Out[37]: array([  9.8,  55. ,   1. ,   2. ,   5. ,   3. ])
另一个是整数索引-

idx = np.setdiff1d(np.arange(A.size),B)
out = np.r_[A[B], A[idx]]
样本运行-

In [26]: A = np.array([ 1, 2, 5, 9.8, 55, 3])

In [27]: B = np.array([ 3, 4])

In [28]: mask = np.in1d(np.arange(A.size),B)

In [29]: np.r_[A[mask], A[~mask]]
Out[29]: array([  9.8,  55. ,   1. ,   2. ,   5. ,   3. ])
In [36]: idx = np.setdiff1d(np.arange(A.size),B)

In [37]: np.r_[A[B], A[idx]]
Out[37]: array([  9.8,  55. ,   1. ,   2. ,   5. ,   3. ])

发布的解决方案中有哪一个适合你吗?