每日小语
人应尊敬他自己,并应自视能配得上最高尚的东西。——黑格尔
gpt代码
import numpy as np
# 随机生成3x3的整型数组
data = np.random.randint(0, 10, size=(3, 3))
# 将数组中的所有偶数替换为0
data[data % 2 == 0] = 0
# 输出替换后的数组
print(data)
这个很好理解。
自己敲写
`data[data % 2 == 0] = 0` 这行代码使用了NumPy的向量化操作,将数组`data`中所有偶数元素替换为0。
- `data % 2 == 0`:这部分代码生成一个布尔型数组,其元素与`data`中对应位置的元素进行取余操作,判断是否等于0。结果是一个与`data`形状相同的布尔型数组,其中`True`表示对应位置的元素是偶数,而`False`表示是奇数。
- `data[data % 2 == 0]`:这部分代码使用布尔型数组作为索引,从原始数组`data`中选取所有满足条件(偶数)的元素,形成一个一维数组。
- `data[data % 2 == 0] = 0`:最后,将选取的偶数元素所在的位置在原始数组中进行赋值操作,将它们全部替换为0。
通过这样的操作,我们可以高效地对整个数组进行元素级别的替换,而无需使用显式的循环。这是NumPy的一个强大之处,因为它支持向量化操作,可以更快速、简洁地处理大规模数据。
这一块不懂,然后还有size的加的地方不熟悉,牢记。