【问题标题】:in python how to create a vector composed of numbers from 1 to 100 and each number is repeated 100 times在python中如何创建一个由1到100的数字组成的向量,每个数字重复100次
【发布时间】:2021-01-09 03:22:21
【问题描述】:

我需要创建一个由 1 到 100 的数字组成的向量,每个数字重复 100 次。 我能够想出这个解决方案,但我需要避免使用 i,i,i,i,i,i....,i,i,i

a = np.zeros(0)
for i in range(1,100): 
    a = np.r_[a,[i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i]]
print(a) 

*这里是输出:[ 1. 1. 1. ... 99. 99. 99.]

【问题讨论】:

    标签: python numpy loops vector jupyter


    【解决方案1】:

    你可以用np.repeat一行完成:

    a = np.repeat(np.arange(1, 100), 100)
    
    print(a)
    # [ 1,  1,  1, ..., 99, 99, 99]
    

    【讨论】:

      【解决方案2】:

      您可以使用numpy.repeat 并在您的for loop 中传递i

      import numpy as np
      a = np.zeros(0)
      for i in range(1,100): 
          a = np.r_[a,np.repeat(i, 100)]
      
      print(a)
      [ 1.  1.  1. ... 99. 99. 99.]
      

      【讨论】:

        【解决方案3】:

        您可以使用列表理解来实现(然后根据需要将其转换为 numpy.array)。

        a = sum([[i] * 100 for i in range(1, 100)], [])
        

        【讨论】:

          猜你喜欢
          • 2022-08-04
          • 2018-01-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-01-23
          • 2020-11-14
          • 2015-01-10
          • 2018-04-14
          相关资源
          最近更新 更多