【问题标题】:Saving big data in csv file将大数据保存在 csv 文件中
【发布时间】:2022-06-28 01:03:56
【问题描述】:

我正在尝试保存一个大矩阵 1000x1000,它遵循对数正态分布。但是保存的文件结果是空的。我在这里做错了什么?

import numpy as np
import csv 

with open('Radius.csv', 'w') as f:
    shape = 1000,1000
    zmin, zmax = 0.2,0.8
    n = np.prod(shape) 
    zc = np.array([]) 
    while True: 
        z = np.random.lognormal(mean=0.2, sigma=0.5, size=n * 100) 
        z = z[(zmin <= z) & (z < zmax)] 
        z = np.r_[zc, z] 
        if len(z) >= n: 
            break 
        inv_r = z[:n].reshape(shape) 
        print("1/r =",[inv_r])
        writer = csv.writer(f)
        writer.writerows(zip(1,[inv_r]))

【问题讨论】:

    标签: python numpy csv


    【解决方案1】:

    这与你写入行的方式有关,zip 函数接受两个迭代,你传入一个 int 和一个迭代 [list] while 循环也只会按原样执行一次。如果你运行这个:

    import numpy as np
    import csv 
    
    with open('Radius.csv', 'w+') as f:
        shape = 1000,1000
        zmin, zmax = 0.2,0.8
        n = np.prod(shape) 
        zc = np.array([]) 
        z = np.random.lognormal(mean=0.2, sigma=0.5, size=n * 100) 
        z = z[(zmin <= z) & (z < zmax)] 
        z = np.r_[zc, z] 
        inv_r = z[:n].reshape(shape) 
        print("1/r =",[inv_r])
        writer = csv.writer(f)
        writer.writerows(inv_r)
    

    它至少会记录到 csv,一定要检查你的 zip 函数以确保它符合你的要求!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-17
      • 1970-01-01
      • 2012-07-11
      • 2022-01-16
      • 2018-09-11
      • 2016-09-01
      • 2017-05-01
      • 1970-01-01
      相关资源
      最近更新 更多