将元素插入到numpy数组

时间:2015-09-28 17:49:41

标签: python arrays numpy

我有一个numpy数组:

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

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

我可以这样做:

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

以便a最终看起来像:

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

问题:这样做的正确方法是什么?我觉得在np.append中嵌套np.insert很可能不是pythonic方式。

4 个答案:

答案 0 :(得分:18)

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

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

演示 -

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

答案 1 :(得分:5)

您可以使用np.concatenate -

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

答案 2 :(得分:5)

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

private void shareBitmap (Bitmap bitmap,String fileName) {
    try {
        File file = new File(getContext().getCacheDir(), fileName + ".png");
        FileOutputStream fOut = new FileOutputStream(file);
        bitmap.compress(CompressFormat.PNG, 100, fOut);
        fOut.flush();
        fOut.close();
        file.setReadable(true, false);
        final Intent intent = new Intent(     android.content.Intent.ACTION_SEND);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
        intent.setType("image/png");
        startActivity(intent);
    } catch (Exception e) {
        e.printStackTrace();
    }

}

或者,如果您不知道数组的长度,可以使用>>> np.insert(a,[0,5],[88,77]) array([ 88, 2, 56, 4, 8, 564, 77]) 指定数组的结尾:

array.size

答案 3 :(得分:4)

怎么样:

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