python代码改变数组数值效率思考与实现

提出问题:一组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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值