如何只减去numpy数组中第一行的第一个数字

时间:2017-07-10 17:12:54

标签: python numpy

例如,说我有:

a = np.array([[1, 2, 3, 6], [2, 45, 34, 56],[3, 8, 56, 45]])

我想从所有行的第一个数字中减去1。所以打印出来:

array([[0, 2, 3, 6], [1, 45, 34, 56],[2, 8, 56, 45]])

我尝试过做

a = np.array([[1, 2, 3, 6], [2, 45, 34, 56],[3, 8, 56, 45]]) -1 

但是,它减去了所有数字,而不仅仅是第一个数字。

2 个答案:

答案 0 :(得分:6)

我相信你要找的是:

a[:,0]-=1

[:,0]将访问第一个轴上的所有值,第二个轴上的第零个索引。

答案 1 :(得分:1)

为了完整起见:

你的numpy 2D数组看起来像这样:

[[ 1  2  3  6]
 [ 2 45 34 56]
 [ 3  8 56 45]]

你想要做的是从第一列中减去1 这可以通过切割整个第一列并从其项中减去1来完成。

在numpy中,您可以对array[:,col_num]之类的列或array[row_num,:]之类的行进行切片,其中:分别表示all the rowsall the columns

所以你的解决方案是:

a[:,0] -=1

您可以选择索引为0的所有行项并从中减去1。

我强烈建议您遵循此link的基本和中级python教程,因为它们会让您熟悉这些概念和许多其他概念。
希望这有用。