我有数据分析模块,其中包含多次调用Matplotlib pyplot API的函数,每次运行时最多可生成30个数字.这些数字在生成后会立即写入磁盘,因此我需要从内存中清除它们.目前,在我的每个功能结束时,我都这样做
import matplotlib.pyplot as plt
plt.clf()
Run Code Online (Sandbox Code Playgroud)
但是我不太确定这个陈述是否能真正清除记忆.我特别担心,因为我看到每次运行模块进行调试时,我的可用内存空间不断减少.任何人都可以告诉我,在我将这些图写入磁盘后,每次我需要做些什么才能真正清除我的记忆?
谢谢.
我在尝试向本身嵌套在另一个字典对象中的字典对象添加更多key:value对时遇到了一些麻烦。同样,在dict[key] = value字典中分配额外的key:value对的通常方法也不适合我的情况(我将在下面解释原因),因此这使我的目标难以实现。
我将通过源代码中的一些语句来说明我要实现的目标。
首先,我有一个包含嵌套的字典对象:
environment = { 'v' :
{
'SDC_PERIOD':'{period}s'.format(period = self.period),
'FAMILY':'{legup_family}s'.format(legup_family = self.legup_family),
'DEVICE_FAMILY':'"{fpga_family}s"'.format(fpga_family = self.fpga_family)
}
}
Run Code Online (Sandbox Code Playgroud)
然后遵循这一行,我将做一个if测试,如果通过,将要求我添加其他字典:
environment_add = { 'v' : {'LM_LICENSE_FILE' : '1800@adsc-linux'} ,
'l' : 'quartus_full' }
Run Code Online (Sandbox Code Playgroud)
最终形成这个完整的字典:
environment = { 'v' :
{
'SDC_PERIOD':'{period}s'.format(period = self.period),
'FAMILY':'{legup_family}s'.format(legup_family = self.legup_family),
'DEVICE_FAMILY':'"{fpga_family}s"'.format(fpga_family = self.fpga_family),
'LM_LICENSE_FILE' : '1800@adsc-linux'
} ,
'l' : 'quartus_full'
}
Run Code Online (Sandbox Code Playgroud)
如您所见,如果我尝试使用dict[key] = value语法分配一个新的key:value对,它将对我不起作用,因为它将最终为我创建一个新的key:value对,或者覆盖现有的字典对象以及嵌套在'v'键下的key :value对。
到目前为止,为了完成字典的创建,我一直在使用以下内容:
environment = """{ v: {'SDC_PERIOD':'%(period)s','FAMILY':'%(legup_family)s','DEVICE_FAMILY':'"%(fpga_family)s"'}}""" % …Run Code Online (Sandbox Code Playgroud) 我正在为pandas query()方法试验几个用例,并尝试了一个引发异常的参数,但却导致对我的DataFrame中的数据进行不必要的修改.
In [549]: syn_fmax_sort
Out[549]:
build_number name fmax
0 390 adpcm 143.45
1 390 aes 309.60
2 390 dfadd 241.02
3 390 dfdiv 10.80
....
211 413 dfmul 215.98
212 413 dfsin 11.94
213 413 gsm 194.70
214 413 jpeg 197.75
215 413 mips 202.39
216 413 mpeg2 291.29
217 413 sha 243.19
[218 rows x 3 columns]
Run Code Online (Sandbox Code Playgroud)
所以我想用query()它来取出包含所有build_number392的数据帧的子集,所以我尝试了:
In [550]: syn_fmax_sort.query('build_number = 392')
Run Code Online (Sandbox Code Playgroud)
这引发了ValueError: cannot label index with a null key异常,但不仅如此,它还将完整的数据帧返回给我,并导致所有build_number …
我正在使用我的解释器来弄清楚Python append()方法的行为并找到:
In [335]: b = [].append(1)
In [336]: b
In [337]:
In [337]: b = [].append('1')
In [338]: b
Run Code Online (Sandbox Code Playgroud)
让我感到困惑的是因为我认为每当我们调用append()列表时,我们都会在其末尾添加新对象,所以不应该调用append()空列表(就像我上面所做的那样)给出了我可以实现的相同结果:
In [339]: b=[]
In [340]: b.append(1)
In [341]: b
Out[341]: [1]
Run Code Online (Sandbox Code Playgroud)
我可能在这里有一个误解,所以如果我弄错了,请纠正我.
我试图让python的subprocess.call方法通过列表(由一系列字符串组成)接受一些args命令,如python文档中所建议的那样.为了在将它放入我的实际脚本之前探索这种行为,我打开了IPython,运行了一些涉及shell设置和args命令的不同组合的命令,并得到以下行为:
In [3]: subprocess.call(['ls', '-%sl' %'a'])
total 320
drwxr-xr-x 20 Kohaugustine staff 680 Oct 15 16:55 .
drwxr-xr-x 5 Kohaugustine staff 170 Sep 12 17:16 ..
-rwxr-xr-x 1 Kohaugustine staff 8544 Oct 15 16:55 a.out
-rwxr-xr-x 1 Kohaugustine staff 8544 Oct 3 10:28 ex1-6
-rw-r--r--@ 1 Kohaugustine staff 204 Oct 3 10:28 ex1-6.c
-rwxr-xr-x 1 Kohaugustine staff 8496 Oct 3 10:15 ex1-7
-rw-r--r--@ 1 Kohaugustine staff 71 Oct 3 10:15 ex1-7.c
-rwxr-xr-x 1 Kohaugustine staff 8496 Sep 12 16:22 hello …Run Code Online (Sandbox Code Playgroud) python ×5
append ×1
bash ×1
call ×1
dataframe ×1
dictionary ×1
ipython ×1
list ×1
matplotlib ×1
memory ×1
pandas ×1
replace ×1
shell ×1
string ×1
subprocess ×1