python按比例生成数据组_Python numpy通过一定规则重复数据组中的数据

l = np.array([3,4,5,6,7])

生成n倍,加倍在每次重复的值。当n=3时,结果如下:[3, 4, 5, 6, 7, 6, 8, 10, 12, 14, 12, 16, 20, 24, 28]

1、numpy.outer和numpy.ndarray.ravel复重生成>>> a = np.array([3,4,5,6,7])

>>> n = 3

>>> factors = 2**np.arange(n)

>>> np.outer(factors, a).ravel()

array([ 3, 4, 5, 6, 7, 6, 8, 10, 12, 14, 12, 16, 20, 24, 28])

2、使用concatenate进行重复l = np.array([3,4,5,6,7])

final = np.concatenate([l*2**(i) for i in range(3)])

print (final)

array([ 3, 4, 5, 6, 7, 6, 8, 10, 12, 14, 12, 16, 20, 24, 28])

3、使用flatten通过填写倍数方式生成l = np.array([3,4,5,6,7])

>>> (l * [[1], [2], [4]]).flatten()

array([ 3, 4, 5, 6, 7, 6, 8, 10, 12, 14, 12, 16, 20, 24, 28])

4、使用reshape和flatten生成import numpy as np

l = np.array([3, 4, 5, 6, 7])

rows = np.tile(l, 3).reshape(-1, len(l)) * np.power(2, np.arange(3)).reshape(-1, 1)

print(rows.flatten())

输出[ 3 4 5 6 7 6 8 10 12 14 12 16 20 24 28]

5、使用np.power和np.ndarray.ravel生成A = np.array([3,4,5,6,7])

res = (A * np.power(2, np.arange(3))[:, None]).ravel()

print(res)

输出array([ 3, 4, 5, 6, 7, 6, 8, 10, 12, 14, 12, 16, 20, 24, 28])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值