![]() |
1
4
问题是,
看那个
以下是支持这一结论的一些附加测试:
这个
|
![]() |
2
0
考虑到numpy是用c(和一些fortran,c++)编写的,而且答案可能与python无关,我将尝试使用几个例子来说明发生了什么。多语言方面使得这一点相当棘手,因此您可能需要检查np.empty()函数的实现: https://github.com/numpy/numpy/blob/master/numpy/matlib.py#L13 你试过了吗:
我得到输出:(符号被保留)
你会注意到行为的改变基于两件事:
例如,尝试运行以下两个示例:
输出:
对
尝试连续运行每一次,以使内存有机会落入一个模式。另外,根据运行这两个块的顺序,您将得到不同的行为。 注意到“空”数组B和C在打印和不打印时的行为,我猜想有一种“懒惰的评估”发生在使用输出时,因为内存仍然是“自由”的(这就是为什么C在最后一个例子中得到与B相同的值), python没有义务为没有实际分配内存的数组打印精确的值 (Malc),即无符号表示,或者任何东西都是公平的游戏,直到你使用。在我的例子中,我通过打印数组来“使用”数组,这可能解释了为什么在我的第一个例子中,你看到的符号是通过打印保存的。 |