包管理和处理 pip、anaconda、PPA 和虚拟环境很困难。在我的依赖关系中的某个地方,事情被打破了。我在 Ubuntu 18.04 上。据我所知,我无法手动修复这些依赖项。
问题在于它的价值:几个月来我一直无法使用 tensorflow。每次我尝试修复它时,即使尽我所知卸载并重新安装所有东西,事情仍然无法正常工作。在沉没足够多的时间后,我正在寻找“核解决方案”。
我想要做的是彻底删除除 Python 和我的系统可能需要的任何 Python 包之外的所有内容,以便我可以重新开始(并希望能正确地做事情。)
所以,我的问题是:如何系统地清理或删除我的 Python 安装?我想擦掉一切,重新开始。是否存在系统指南或智能且信誉良好的脚本来执行此操作?
我想在Python中创建一个空的Numpy数组,以便稍后用值填充它.下面的代码生成一个1024 x 1024 x 1024的数组,其中包含2个字节的整数,这意味着它至少需要2 GB的RAM.
>>> import numpy as np; from sys import getsizeof
>>> A = np.zeros((1024,1024,1024), dtype=np.int16)
>>> getsizeof(A)
2147483776
Run Code Online (Sandbox Code Playgroud)
从中getsizeof(A),我们看到数组需要2 ^ 31 + 128个字节(大概是头信息.)然而,使用我的任务管理器,我可以看到Python只占用了18.7 MiB的内存.
假设阵列被压缩,我将随机值分配给每个内存插槽,以便它不能.
>>> for i in range(1024):
... for j in range(1024):
... for k in range(1024):
... A[i,j,k] = np.random.randint(32767, dtype = np.int16)
Run Code Online (Sandbox Code Playgroud)
循环仍在运行,我的RAM正在缓慢增加(大概是由于组成A的数组充满了无法压缩的噪声.)我假设它会使我的代码更快,迫使numpy从头开始扩展这个数组.奇怪的是,我没有在任何地方看到这个记录!
所以,1.为什么numpy这样做?2.如何强制numpy分配内存?
我正在使用 Python 3 并尝试创建已知且固定大小的二维整数数组。我怎样才能做到这一点?
我想到的数组是 Python 提供的array.array,尽管我并不反对使用像 NumPy 这样的库。
我知道这可以通过列表来完成,但我想使用数组,因为它们的空间效率更高。现在,我正在以这种方式初始化列表,但我想用数组替换它:
my_list = [[ 0 for _ in range(height) ] for _ in range(.width)]
例如,在 C 中,我会写
int my_array[ width ][ height ];
我怎样才能在 Python 中做到这一点