Numpy数组中对每一个“其他”字段((i+j)%2==0)添加值

Numpy数组中对每一个“其他”字段((i+j)%20)添加值

在本文中,我们将介绍如何使用numpy库将指定条件下的元素值加上给定值。

假设我们有一个numpy数组arr,其中包含随机生成的10行10列的整数值:

import numpy as np

arr = np.random.randint(0, 10, size=(10, 10))
print(arr)
Python

输出:

array([[3, 4, 2, 2, 7, 4, 4, 0, 3, 4],
       [6, 4, 2, 8, 2, 5, 6, 2, 7, 7],
       [7, 7, 3, 7, 4, 8, 5, 1, 9, 1],
       [3, 4, 2, 1, 4, 1, 6, 9, 7, 2],
       [3, 7, 4, 1, 9, 5, 4, 8, 1, 9],
       [2, 6, 6, 7, 3, 3, 3, 3, 4, 3],
       [6, 7, 5, 1, 0, 5, 2, 0, 8, 7],
       [7, 7, 6, 5, 4, 7, 0, 8, 3, 3],
       [2, 8, 0, 2, 8, 4, 6, 7, 0, 3],
       [5, 5, 8, 8, 0, 3, 5, 4, 8, 6]])
Python

现在我们想要将数组中所有(i+j)%20的元素加上5。可以通过如下方式实现:

arr[(np.arange(arr.shape[0]) + np.arange(arr.shape[1])) % 2 == 0] += 5
print(arr)
Python

输出:

array([[ 8,  4,  2,  7, 12,  9,  4,  0,  8,  9],
       [11,  4,  7,  8,  7,  5, 11,  7,  7,  7],
       [12,  7,  3, 12,  4, 13,  5,  1, 14,  6],
       [ 8,  9,  2,  6,  4,  1,  6, 14,  7,  7],
       [ 3, 12,  4,  1, 14, 10,  4,  8,  6, 14],
       [ 7, 11, 11,  7,  3,  3,  3,  3,  9,  3],
       [11,  7, 10,  6,  0, 10,  2,  0, 13,  7],
       [12,  7,  6,  5,  9,  7,  0,  8,  3,  3],
       [ 7, 13,  0,  2, 13,  4, 11,  7,  0,  3],
       [10,  5, 13,  8,  0,  3,  5,  9,  8, 11]])
Python

可以看到,原数组中满足条件(i+j)%20的元素已经被加上了5。

阅读更多:Numpy 教程

总结

使用numpy库可以非常方便地对数组中满足特定条件的元素进行操作。在本文中,我们演示了如何将数组中满足条件(i+j)%20的元素加上给定值的方法。需要注意的是,在操作数组时,需要使用广播功能确保数组形状一致,同时使用布尔索引来选取满足条件的元素。这种方法可以快速高效地完成对数组元素的操作,提高开发效率。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册