python的内存是否有限制?我一直在使用python脚本来计算文件的平均值,该文件最小值为150mb.
根据文件的大小,我有时会遇到一个MemoryError.
可以为python分配更多的内存,所以我没有遇到错误?
编辑:现在的代码如下
注意:文件大小可能有很大差异(最大为20GB),文件的最小大小为150mb
file_A1_B1 = open("A1_B1_100000.txt", "r")
file_A2_B2 = open("A2_B2_100000.txt", "r")
file_A1_B2 = open("A1_B2_100000.txt", "r")
file_A2_B1 = open("A2_B1_100000.txt", "r")
file_write = open ("average_generations.txt", "w")
mutation_average = open("mutation_average", "w")
files = [file_A2_B2,file_A2_B2,file_A1_B2,file_A2_B1]
for u in files:
line = u.readlines()
list_of_lines = []
for i in line:
values = i.split('\t')
list_of_lines.append(values)
count = 0
for j in list_of_lines:
count +=1
for k in range(0,count):
list_of_lines[k].remove('\n')
length = len(list_of_lines[0])
print_counter = 4
for o in range(0,length):
total = 0 …Run Code Online (Sandbox Code Playgroud) 我有两个数组(a和b),其中n个整数元素在范围(0,N).
错字:具有2 ^ n个整数的数组,其中最大整数取值N = 3 ^ n
我想计算a和b中每个元素组合的总和(对于所有i,j, sum_ij_ = a_i_ + b_j_ ).然后取模数N(sum_ij_ = sum_ij_%N),最后计算不同总和的频率.
为了快速执行numpy,没有任何循环,我尝试使用meshgrid和bincount函数.
A,B = numpy.meshgrid(a,b)
A = A + B
A = A % N
A = numpy.reshape(A,A.size)
result = numpy.bincount(A)
Run Code Online (Sandbox Code Playgroud)
现在,问题是我的输入数组很长.当我使用2 ^ 13个元素的输入时,meshgrid给了我MemoryError.我想计算具有2 ^ 15-2 ^ 20个元素的数组.
这是n在15到20的范围内
numpy有没有聪明的技巧呢?
任何帮助将受到高度赞赏.
- 琼