从python文件导入时,如何修复嵌套在for循环中的numpy.random.choice输出?
问题:从python文件导入时,如何修复嵌套在for循环中的numpy.random.choice输出?,python,numpy,random,Python,Numpy,Random,问题: import numpy as np def create_baskets(num_baskets, max_basket_size, unique_items): """ Create list of baskets of variable length >= 3 Parameters ---------- num_baskets: number of baskets (sub-lists) max_baske
import numpy as np
def create_baskets(num_baskets, max_basket_size, unique_items):
"""
Create list of baskets of variable length >= 3
Parameters
----------
num_baskets:
number of baskets (sub-lists)
max_basket_size: maximum basket size
Baskets will be of size range(3, max_basket_size)
unique_items:
number of unique items
Returns
-------
ret: list of "baskets", of randomly generated length
"""
baskets = []
for i in range(num_baskets):
n = np.random.choice(range(3, max_basket_size), 1)
basket = np.random.choice(range(0, unique_items), n, replace=False)
baskets.append(basket)
return baskets
我试图生成多个不同长度的随机数列表。在长度为num_baskets
的循环中,我使用np.random.choice
为每个连续列表的长度生成一个数字n
。然后,np.random.choice
再次生成长度为n
的随机数列表
预期产出:
import numpy as np
def create_baskets(num_baskets, max_basket_size, unique_items):
"""
Create list of baskets of variable length >= 3
Parameters
----------
num_baskets:
number of baskets (sub-lists)
max_basket_size: maximum basket size
Baskets will be of size range(3, max_basket_size)
unique_items:
number of unique items
Returns
-------
ret: list of "baskets", of randomly generated length
"""
baskets = []
for i in range(num_baskets):
n = np.random.choice(range(3, max_basket_size), 1)
basket = np.random.choice(range(0, unique_items), n, replace=False)
baskets.append(basket)
return baskets
长度num_篮的列表
,列表中的每一项都是另一个随机长度n
电流输出:
长度num_篮的列表
,但子列表长度一致。但是,每次运行该函数时,每次调用的子列表长度都不同(但仍然一致)
我尝试过的:
当我从python文件导入函数时(例如,从python文件导入创建篮的与预期输出有偏差。尽管在每个循环中重新定义了n
,但所有输出列表的长度都相同
然而,当我复制粘贴函数并在jupyter笔记本中定义它时,我会得到不同列表长度的预期输出
我的代码:
import numpy as np
def create_baskets(num_baskets, max_basket_size, unique_items):
"""
Create list of baskets of variable length >= 3
Parameters
----------
num_baskets:
number of baskets (sub-lists)
max_basket_size: maximum basket size
Baskets will be of size range(3, max_basket_size)
unique_items:
number of unique items
Returns
-------
ret: list of "baskets", of randomly generated length
"""
baskets = []
for i in range(num_baskets):
n = np.random.choice(range(3, max_basket_size), 1)
basket = np.random.choice(range(0, unique_items), n, replace=False)
baskets.append(basket)
return baskets
我不确定函数的编写方式是否存在根本错误/可改进之处,或者导入是否存在问题。我重新启动了Jupyter内核,以便在导入时反映对python文件代码所做的必要更改
尽管在笔记本中多次重新导入模块,但Jupyter没有更新对python文件所做的更改并保存在我的文本编辑器中,这是一个问题。我重新启动了Jupyter内核,以便在导入时反映对python文件代码所做的必要更改
尽管在笔记本中多次重新导入模块,但Jupyter没有更新对python文件所做的更改并保存在我的文本编辑器中,这是一个问题