#python #python-3.x
#python #python-3.x
Вопрос:
Как следует из названия, я просто хочу создать два столбца, в одном из которых 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() встроена, но она выдает сообщение об ошибке.
Комментарии:
1. привет, возможно
import random
, тогда используйте егоprint random.randint(0, 5)
2. Вам необходимо импортировать модуль random или использовать функцию numpy randint, поскольку у вас уже есть импортированный numpy
Ответ №1:
Я считаю, что вы пропустили:
from random import randint
Ответ №2:
Поскольку вы уже знакомы с numpy
, вы можете использовать функцию numpy random и генерировать n
количество случайных целых чисел с максимально возможным целым числом range_limit
следующим образом:
from numpy import random
c1 = random.randint(range_limit, size=(n))
c2 = [i**3 for i in c1]
Итак, чтобы сгенерировать 5 значений от 0 до 100;
c1 = random.randint(100, size=(5))
А затем куб их
Ответ №3:
Существует несколько проблем с текущим кодом:
-
вы импортируете библиотеки очень необычным способом. Гораздо чаще используется импорт
numpy as np
илиpandas as pd
. -
randint()
необходимо правильно вызвать. Это не встроенная функция в python. Это метод вnp.random
so, который либо выполняется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 9
c1 = [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]