我有一个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方式。
答案 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])