访问任意维度的 Numpy 数组中的单个元素
Accessing an individual element in a Numpy array of arbitrary dimensions
所以。我正在尝试访问和修改一系列 Numpy 数组的倒数第二个单个元素。
array_1D = np.array([10,11,12,13, 14])
array_2D = np.array([[20,30,40,50,60], [43,54,65,76,87], [11,22,33,44,55]])
array_3D = np.array([[[1,2,3,4,5], [11,21,31,41,51]], [[11,12,13,14,15], [51,52,53,54,5]]])
arrays = [array_1D, array_2D, array_3D]
我想以编程方式而不是手动方式执行此操作,以便更深入地学习。
我有的是:
for array in arrays:
print(array) # Before
print('CHANGE TEN')
array[..., -2] = 10
print(array, end='\n--------\n\n') # After
哪个returns:
[10 11 12 13 14]
CHANGE TEN
[10 11 12 10 14]
--------
[[20 30 40 50 60]
[43 54 65 76 87]
[11 22 33 44 55]]
CHANGE TEN
[[20 30 40 10 60]
[43 54 65 10 87]
[11 22 33 10 55]]
--------
[[[ 1 2 3 4 5]
[11 21 31 41 51]]
[[11 12 13 14 15]
[51 52 53 54 5]]]
CHANGE TEN
[[[ 1 2 3 10 5]
[11 21 31 10 51]]
[[11 12 13 10 15]
[51 52 53 10 5]]]
--------
如您所见,此语法当前访问沿主轴的所有元素的倒数第二个单个元素。
有没有一种巧妙的方法来访问任意维度数组的倒数第二个单个元素?
(在这种情况下,这意味着一个整数。)
我知道的奇怪应用程序。我有兴趣了解与使用任意维度数组密切相关的限制。
(我在谷歌上搜索了一下,搜索无果。Google 傅显然不强。)
给你:
array_1D = np.array([10,11,12,13, 14])
array_2D = np.array([[20,30,40,50,60], [43,54,65,76,87], [11,22,33,44,55]])
array_3D = np.array([[[1,2,3,4,5], [11,21,31,41,51]], [[11,12,13,14,15], [51,52,53,54,5]]])
arrays = [array_1D, array_2D, array_3D]
for array in arrays:
print(array) # Before
print('CHANGE TEN')
array[tuple([-2] * array.ndim)] = 10
print(array, end='\n--------\n\n') # After
print(array_1D[-2], array_2D[-2,-2], array_3D[-2,-2,-2])
输出:
10 10 10
所以。我正在尝试访问和修改一系列 Numpy 数组的倒数第二个单个元素。
array_1D = np.array([10,11,12,13, 14])
array_2D = np.array([[20,30,40,50,60], [43,54,65,76,87], [11,22,33,44,55]])
array_3D = np.array([[[1,2,3,4,5], [11,21,31,41,51]], [[11,12,13,14,15], [51,52,53,54,5]]])
arrays = [array_1D, array_2D, array_3D]
我想以编程方式而不是手动方式执行此操作,以便更深入地学习。
我有的是:
for array in arrays:
print(array) # Before
print('CHANGE TEN')
array[..., -2] = 10
print(array, end='\n--------\n\n') # After
哪个returns:
[10 11 12 13 14]
CHANGE TEN
[10 11 12 10 14]
--------
[[20 30 40 50 60]
[43 54 65 76 87]
[11 22 33 44 55]]
CHANGE TEN
[[20 30 40 10 60]
[43 54 65 10 87]
[11 22 33 10 55]]
--------
[[[ 1 2 3 4 5]
[11 21 31 41 51]]
[[11 12 13 14 15]
[51 52 53 54 5]]]
CHANGE TEN
[[[ 1 2 3 10 5]
[11 21 31 10 51]]
[[11 12 13 10 15]
[51 52 53 10 5]]]
--------
如您所见,此语法当前访问沿主轴的所有元素的倒数第二个单个元素。
有没有一种巧妙的方法来访问任意维度数组的倒数第二个单个元素? (在这种情况下,这意味着一个整数。)
我知道的奇怪应用程序。我有兴趣了解与使用任意维度数组密切相关的限制。
(我在谷歌上搜索了一下,搜索无果。Google 傅显然不强。)
给你:
array_1D = np.array([10,11,12,13, 14])
array_2D = np.array([[20,30,40,50,60], [43,54,65,76,87], [11,22,33,44,55]])
array_3D = np.array([[[1,2,3,4,5], [11,21,31,41,51]], [[11,12,13,14,15], [51,52,53,54,5]]])
arrays = [array_1D, array_2D, array_3D]
for array in arrays:
print(array) # Before
print('CHANGE TEN')
array[tuple([-2] * array.ndim)] = 10
print(array, end='\n--------\n\n') # After
print(array_1D[-2], array_2D[-2,-2], array_3D[-2,-2,-2])
输出:
10 10 10