Insert elements to beginning and end of numpy arra

2020-07-02 11:45发布

问题:

I have a numpy array:

import numpy as np
a = np.array([2, 56, 4, 8, 564])

and I want to add two elements: one at the beginning of the array, 88, and one at the end, 77.

I can do this with:

a = np.insert(np.append(a, [77]), 0, 88)

so that a ends up looking like:

array([ 88,   2,  56,   4,   8, 564,  77])

The question: what is the correct way of doing this? I feel like nesting a np.append in a np.insert is quite likely not the pythonic way to do this.

回答1:

Another way to do that would be to use numpy.concatenate . Example -

np.concatenate([[88],a,[77]])

Demo -

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])


回答2:

You can use np.concatenate -

np.concatenate(([88],a,[77]))


回答3:

You can pass the list of indices to np.insert :

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

Or if you don't know the length of your array you can use array.size to specify the end of array :

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


回答4:

what about:

a = np.hstack([88, a, 77])