如何向numpy数组中添加常量,但跳过Python中的第一行

如何向numpy数组中添加常量,但跳过Python中的第一行,python,arrays,numpy,Python,Arrays,Numpy,我有一个numpy数组,如下所示: array([[ 0.08778, 0.99666, 0.30648], [ 0.41688, 2.70076, 1.10135], [ 1.90494, 0.91685, -0.26984], [-0.44512, 1.73972, -1.24406], [-1.68572, 1.01617, 1.01221], [-0.1977 , -0.77177, -0.35553]

我有一个numpy数组,如下所示:

array([[ 0.08778,  0.99666,  0.30648],
       [ 0.41688,  2.70076,  1.10135],
       [ 1.90494,  0.91685, -0.26984],
       [-0.44512,  1.73972, -1.24406],
       [-1.68572,  1.01617,  1.01221],
       [-0.1977 , -0.77177, -0.35553],
       [ 0.61588,  3.6995 ,  1.59813],
       [ 2.98863,  0.86173, -0.59616],
       [-0.78312,  2.20935, -2.22362],
       [-2.73208,  1.02071,  1.44702],
       [-0.36006, -1.82939, -0.72827]])
我想给数组中的每个值加0.05,比如

new_array = array + 0.1
除了我不想对第一行[0.08778,0.99666,0.30648]执行此操作之外。我觉得有一个简单的方法可以做到这一点,但我想不出来

您可以这样做:

import numpy as np

a = np.array([[ 0.08778,  0.99666,  0.30648],
       [ 0.41688,  2.70076,  1.10135],
       [ 1.90494,  0.91685, -0.26984],
       [-0.44512,  1.73972, -1.24406],
       [-1.68572,  1.01617,  1.01221],
       [-0.1977 , -0.77177, -0.35553],
       [ 0.61588,  3.6995 ,  1.59813],
       [ 2.98863,  0.86173, -0.59616],
       [-0.78312,  2.20935, -2.22362],
       [-2.73208,  1.02071,  1.44702],
       [-0.36006, -1.82939, -0.72827]])
       
a[1:] += 0.05
print(a)
输出将是:

[[ 0.08778  0.99666  0.30648]
 [ 0.46688  2.75076  1.15135]
 [ 1.95494  0.96685 -0.21984]
 [-0.39512  1.78972 -1.19406]
 [-1.63572  1.06617  1.06221]
 [-0.1477  -0.72177 -0.30553]
 [ 0.66588  3.7495   1.64813]
 [ 3.03863  0.91173 -0.54616]
 [-0.73312  2.25935 -2.17362]
 [-2.68208  1.07071  1.49702]
 [-0.31006 -1.77939 -0.67827]]
请记住,write
b=a[1::+0.05
不是等效的,因为
b
不会有
a
的第一行。如果要保存到另一个变量中,则必须先复制整个数组

您可以这样做:

import numpy as np

a = np.array([[ 0.08778,  0.99666,  0.30648],
       [ 0.41688,  2.70076,  1.10135],
       [ 1.90494,  0.91685, -0.26984],
       [-0.44512,  1.73972, -1.24406],
       [-1.68572,  1.01617,  1.01221],
       [-0.1977 , -0.77177, -0.35553],
       [ 0.61588,  3.6995 ,  1.59813],
       [ 2.98863,  0.86173, -0.59616],
       [-0.78312,  2.20935, -2.22362],
       [-2.73208,  1.02071,  1.44702],
       [-0.36006, -1.82939, -0.72827]])
       
a[1:] += 0.05
print(a)
输出将是:

[[ 0.08778  0.99666  0.30648]
 [ 0.46688  2.75076  1.15135]
 [ 1.95494  0.96685 -0.21984]
 [-0.39512  1.78972 -1.19406]
 [-1.63572  1.06617  1.06221]
 [-0.1477  -0.72177 -0.30553]
 [ 0.66588  3.7495   1.64813]
 [ 3.03863  0.91173 -0.54616]
 [-0.73312  2.25935 -2.17362]
 [-2.68208  1.07071  1.49702]
 [-0.31006 -1.77939 -0.67827]]

请记住,write
b=a[1::+0.05
不是等效的,因为
b
不会有
a
的第一行。如果要保存在另一个变量中,必须首先复制整个数组。要做到这一点,首先需要了解numpy的基本操作

例如,您有一个名为
arr
的numpy数组,如下所示

arr = np.array([[ 0.08778,  0.99666,  0.30648],
   [ 0.41688,  2.70076,  1.10135],
   [ 1.90494,  0.91685, -0.26984],
   [-0.44512,  1.73972, -1.24406],
   [-1.68572,  1.01617,  1.01221],
   [-0.1977 , -0.77177, -0.35553],
   [ 0.61588,  3.6995 ,  1.59813],
   [ 2.98863,  0.86173, -0.59616],
   [-0.78312,  2.20935, -2.22362],
   [-2.73208,  1.02071,  1.44702],
   [-0.36006, -1.82939, -0.72827]])
这是一个二维numpy数组。因此,您可以访问任何行和列,甚至是特定位置的特定值。要遍历数组,可以使用
arr[起始行:结束行,起始列:结束列]
。例如,您希望通过
arr[1:,:]
访问除第一行以外的所有值。 因此,您可以通过以下代码片段获得所需的输出

arr[1:,:] = arr[1:,:]+0.1 or arr[1:,:]+=0.1 or arr[1:]+=0.1
输出看起来像

array([[ 0.08778,  0.99666,  0.30648],
   [ 0.51688,  2.80076,  1.20135],
   [ 2.00494,  1.01685, -0.16984],
   [-0.34512,  1.83972, -1.14406],
   [-1.58572,  1.11617,  1.11221],
   [-0.0977 , -0.67177, -0.25553],
   [ 0.71588,  3.7995 ,  1.69813],
   [ 3.08863,  0.96173, -0.49616],
   [-0.68312,  2.30935, -2.12362],
   [-2.63208,  1.12071,  1.54702],
   [-0.26006, -1.72939, -0.62827]])
由于您不想操纵列,所以可以编写代码而不提及列


快乐编码

要做到这一点,首先,您需要了解numpy的基本操作

例如,您有一个名为
arr
的numpy数组,如下所示

arr = np.array([[ 0.08778,  0.99666,  0.30648],
   [ 0.41688,  2.70076,  1.10135],
   [ 1.90494,  0.91685, -0.26984],
   [-0.44512,  1.73972, -1.24406],
   [-1.68572,  1.01617,  1.01221],
   [-0.1977 , -0.77177, -0.35553],
   [ 0.61588,  3.6995 ,  1.59813],
   [ 2.98863,  0.86173, -0.59616],
   [-0.78312,  2.20935, -2.22362],
   [-2.73208,  1.02071,  1.44702],
   [-0.36006, -1.82939, -0.72827]])
这是一个二维numpy数组。因此,您可以访问任何行和列,甚至是特定位置的特定值。要遍历数组,可以使用
arr[起始行:结束行,起始列:结束列]
。例如,您希望通过
arr[1:,:]
访问除第一行以外的所有值。 因此,您可以通过以下代码片段获得所需的输出

arr[1:,:] = arr[1:,:]+0.1 or arr[1:,:]+=0.1 or arr[1:]+=0.1
输出看起来像

array([[ 0.08778,  0.99666,  0.30648],
   [ 0.51688,  2.80076,  1.20135],
   [ 2.00494,  1.01685, -0.16984],
   [-0.34512,  1.83972, -1.14406],
   [-1.58572,  1.11617,  1.11221],
   [-0.0977 , -0.67177, -0.25553],
   [ 0.71588,  3.7995 ,  1.69813],
   [ 3.08863,  0.96173, -0.49616],
   [-0.68312,  2.30935, -2.12362],
   [-2.63208,  1.12071,  1.54702],
   [-0.26006, -1.72939, -0.62827]])
由于您不想操纵列,所以可以编写代码而不提及列

快乐编码