猿问

创建两列,一列包含随机数,另一列包含第一列的立方

正如标题所示,我只想创建两列,一列有 100 个随机数,另一列有第一列的立方值。这是我的尝试:


import pandas as p

import numpy as n


c1 = list()

c2 = list()

for n in range (0, 99):

    c1 = [randint()]

    c2 = c1*c1*c1

    

print (c1, c2)

我以为 randint() 函数是内置的,但它给出了错误消息。


肥皂起泡泡
浏览 121回答 3
3回答

慕容森

我相信你错过了:from random import randint

侃侃无极

当前代码存在几个问题:您正在以一种非常不常见的方式导入库。numpy as np导入或更为常见pandas as pd。randint()需要正确调用。它不是Python中的内置函数。这是so下的一个方法,要么在导入阶段np.random做,要么像下面这样使用。from numpy.random import randint另外,randint()除了一些论点。range(0,99)只会为您生成 99 个数字。您应该使用range(0,100)或range(100)。你不能c1*c1*c1这样做lists。您需要对每个元素执行此操作。您可以使用列表理解(见下文)。或者,您可以转换lists为numpy array,c1 = np.array(c1)然后执行c1*c1*c1.这是一个可行的解决方案:import numpy as np#using list comprehension to generate 100 random numbers between 0 to 9c1 = [np.random.randint(10) for i in range(100)]#using list comprehension to cube each number c2 = [x*x*x for x in c1]print(c1)print(c2)输出:[6 9 3 4 4 0 4 5 5 4 8 7 6 2 7 8 5 6 9 0 4 6 6 1 4 1 2 4 3 2 6 0 1 5 5 6 9 5 2 3 1 4 9 1 8 5 8 1 3 1 0 9 2 5 0 7 9 1 8 9 7 7 2 5 0 2 9 1 0 2 4 4 9 3 3 9 8 0 5 5 2 9 8 2 4 2 7 3 2 6 8 1 5 9 4 6 3 4 2 8][216 729  27  64  64   0  64 125 125  64 512 343 216   8 343 512 125 216 729   0  64 216 216   1  64   1   8  64  27   8 216   0   1 125 125 216 729 125   8  27   1  64 729   1 512 125 512   1  27   1   0 729   8 125   0 343 729   1 512 729 343 343   8 125   0   8 729   1   0   8  64  64 729  27  27 729 512   0 125 125   8 729 512   8  64   8 343  27   8 216 512   1 125 729  64 216  27  64   8 512]

森栏

由于您已经熟悉numpy,您可以使用 numpy random 函数并生成n一定数量的随机整数,其中最大可能的整数如下range_limit:from numpy import randomc1 = random.randint(range_limit, size=(n))c2 = [i**3 for i in c1]因此生成 0 到 100 之间的 5 个值;c1 = random.randint(100, size=(5))然后将它们切块
随时随地看视频慕课网APP

相关分类

Python
我要回答