提出问题:一组1000万个0-100的整数序列,用他来生成一个新序列,要求如果原本序列中是奇数就不变,偶数变成它的一半。
本文列出多种方法来实现。
1、for循环
import numpy as np
# 创建一个包含1000万个0-100的整数的NumPy数组
arr = np.random.randint(0, 101, size=10**7)
new_arr = []
# 使用for循环生成新序列
for i in arr:
if i % 2 == 0:
new_arr.append(i / 2)
else:
new_arr.append(i)
使用一个for循环遍历arr
中的每个元素。对于每个元素,如果它是偶数(即i % 2 == 0
),则将其除以2(即i / 2
)并添加到新序列new_arr
中;否则(即奇数),直接将其添加到新序列中。
2、列表解析式
import numpy as np
# 创建一个包含1000万个0-100的整数的NumPy数组
arr = np.random.randint(0, 101, size=10**7)
# 使用列表推导式和for循环生成新序列
new_arr = [i if i % 2 == 1 else i / 2 for i in arr]
它使用一个列表推导式和for循环遍历arr
中的每个元素。对于每个元素,如果它是奇数(即i