将元素插入numpy数组的开头和结尾

Gab*_*iel 14 python arrays numpy

我有一个numpy数组:

import numpy as np
a = np.array([2, 56, 4, 8, 564])
Run Code Online (Sandbox Code Playgroud)

我想添加两个元素:一个在数组的开头88,一个在结尾,77.

我可以这样做:

a = np.insert(np.append(a, [77]), 0, 88)
Run Code Online (Sandbox Code Playgroud)

所以a最终看起来像:

array([ 88,   2,  56,   4,   8, 564,  77])
Run Code Online (Sandbox Code Playgroud)

问题是:这样做的正确方法是什么?我觉得自己像一个嵌套np.append在一个np.insert很可能不是Python的方式来做到这一点.

Ana*_*mar 19

另一种方法是使用numpy.concatenate.示例 -

np.concatenate([[88],a,[77]])
Run Code Online (Sandbox Code Playgroud)

演示 -

In [62]: a = np.array([2, 56, 4, 8, 564])

In [64]: np.concatenate([[88],a,[77]])
Out[64]: array([ 88,   2,  56,   4,   8, 564,  77])
Run Code Online (Sandbox Code Playgroud)


Div*_*kar 5

您可以使用np.concatenate-

np.concatenate(([88],a,[77]))
Run Code Online (Sandbox Code Playgroud)


小智 5

关于什么:

a = np.hstack([88, a, 77])
Run Code Online (Sandbox Code Playgroud)


Kas*_*mvd 5

您可以将索引列表传递给np.insert

>>> np.insert(a,[0,5],[88,77])
array([ 88,   2,  56,   4,   8, 564,  77])
Run Code Online (Sandbox Code Playgroud)

或者,如果您不知道数组的长度,则可以array.size用来指定数组的结尾:

>>> np.insert(a,[0,a.size],[88,77])
array([ 88,   2,  56,   4,   8, 564,  77])
Run Code Online (Sandbox Code Playgroud)

  • @ J.Corson No`-1`在这种情况下不起作用,它将在564之前插入`77` (3认同)
  • `>>> np.insert(a,[0,-1],[88,77])array([88,2,56,4,4,77,564])` (2认同)