是否有更快的pythonic方式来递增数组的一部分?

时间:2014-05-15 17:53:54

标签: python arrays optimization numpy

我有一个表格数组(只是一个例子):

array([[ 14.,  48.],
       [ 18.,  45.],
       [  9.,  42.],
       [  9.,  57.],
       [  3.,  30.]])

我希望将所有元素的第一个组成部分增加1来得到这个:

array([[ 15.,  48.],
       [ 19.,  45.],
       [ 10.,  42.],
       [ 10.,  57.],
       [  4.,  30.]])

现在,我正在使用它:

arr = np.array([arr.T[0] + 1, arr.T[1]]).T

但我想知道是否有更好的方法来操纵像这样的子阵列。有吗?

1 个答案:

答案 0 :(得分:5)

arr = array([[ 14.,  48.],
   [ 18.,  45.],
   [  9.,  42.],
   [  9.,  57.],
   [  3.,  30.]])
arr[:,0] += 1

如果您需要副本,请先使用arr.copy()复制数组。