小编BGr*_*een的帖子

当要求从文件导入时,Jupyter 使用过时版本的函数

在文件中mylibrary.py我有这个功能

def myfunc(a,b):
    return a+b
Run Code Online (Sandbox Code Playgroud)

在 Jupyter 笔记本中我运行

import mylibrary
mylibrary.myfunc(1,2)
Run Code Online (Sandbox Code Playgroud)

并且输出3符合预期。

但是,当我更新文件mylibrary.py以使其内容为

def myfunc(a):
    return a+1
Run Code Online (Sandbox Code Playgroud)

并在 Jupyter 中运行

import mylibrary
mylibrary.myfunc(1,2)
Run Code Online (Sandbox Code Playgroud)

输出是一个错误:

TypeError: myfunc() missing 1 required positional argument: 'b'
Run Code Online (Sandbox Code Playgroud)

显然 Jupyter 仍在使用旧版本的mylibrary.py. mylibrary.py如果我在尝试导入缓存后删除为其创建的缓存,该错误仍然存​​在。

为什么会发生这种情况,我该如何纠正?(一个明显的解决方法是在 Jupyter 笔记本中定义myfunc,而不是将其分开,现在我会这样做。但是,这解决了问题而不是实际修复它,所以我仍然不明白出了什么问题,并且结果我以后可能会陷入陷阱。因此,我认为找出问题所在是值得的。)

python import jupyter-notebook jupyter-lab

5
推荐指数
0
解决办法
1355
查看次数

创建一个所有行都相同的 numpy 数组

给定一个向量v,我想创建一个所有行都等于的 2D numpy 数组v。做这个的最好方式是什么?必须有比使用 for 循环更快的方法来做到这一点。有像fill,ones和之类的函数zeros可以用一个值填充整个数组,但是用相同的值填充每一列,但每列的值不同呢?

python numpy

3
推荐指数
1
解决办法
4257
查看次数

如果没有提供种子,NumPy 如何为其随机数生成器提供种子?

例如,假设我调用时numpy.random.uniform(0, 1, 10)没有调用任何与种子相关的函数。NumPy 必须使用一些默认种子,但我在文档中找不到它。当没有指定种子时,NumPy 如何种子它的随机数?

python random numpy random-seed

1
推荐指数
1
解决办法
76
查看次数