Python 将单元格的输出保存为jupyter笔记本中的txt文件

Python 将单元格的输出保存为jupyter笔记本中的txt文件,python,random,jupyter-notebook,Python,Random,Jupyter Notebook,我非常希望将最后一个单元格的输出保存在txt文件中 q = [rng.next () for _ in range (0, 25000000)] 我知道我可以使用熊猫数据帧,但我需要txt文件来执行硬测试。在jupyter笔记本中是否可行?可能我需要什么类型的数据来执行此操作 我几乎可以肯定,有一次我做了那样的事,不幸的是我不记得是怎么做的,我也找不到一个明确的答案 下面是我的LCG随机数生成器的代码: import numpy as np class LCG(object):

我非常希望将最后一个单元格的输出保存在txt文件中

 q = [rng.next () for _ in range (0, 25000000)]
我知道我可以使用熊猫数据帧,但我需要txt文件来执行硬测试。在jupyter笔记本中是否可行?可能我需要什么类型的数据来执行此操作

我几乎可以肯定,有一次我做了那样的事,不幸的是我不记得是怎么做的,我也找不到一个明确的答案

下面是我的LCG随机数生成器的代码:

import numpy as np

class LCG(object):

    UZERO: np.uint32 = np.uint32(0)
    UONE : np.uint32 = np.uint32(1)

    def __init__(self, seed: np.uint32, a: np.uint32, c: np.uint32) -> None:
        self._seed: np.uint32 = np.uint32(seed)
        self._a   : np.uint32 = np.uint32(a)
        self._c   : np.uint32 = np.uint32(c)

    def next(self) -> np.uint32:
        self._seed = self._a * self._seed + self._c
        return self._seed

    def seed(self) -> np.uint32:
        return self._seed

    def set_seed(self, seed: np.uint32) -> np.uint32:
        self._seed = seed

    def skip(self, ns: np.int32) -> None:
        """
        Signed argument - skip forward as well as backward

        The algorithm here to determine the parameters used to skip ahead is
        described in the paper F. Brown, "Random Number Generation with Arbitrary Stride,"
        Trans. Am. Nucl. Soc. (Nov. 1994). This algorithm is able to skip ahead in
        O(log2(N)) operations instead of O(N). It computes parameters
        A and C which can then be used to find x_N = A*x_0 + C mod 2^M.
        """

        nskip: np.uint32 = np.uint32(ns)

        a: np.uint32 = self._a
        c: np.uint32 = self._c

        a_next: np.uint32 = LCG.UONE
        c_next: np.uint32 = LCG.UZERO

        while nskip > LCG.UZERO:
            if (nskip & LCG.UONE) != LCG.UZERO:
                a_next = a_next * a
                c_next = c_next * a + c

            c = (a + LCG.UONE) * c
            a = a * a

            nskip = nskip >> LCG.UONE

        self._seed = a_next * self._seed + c_next


#%%
np.seterr(over='ignore')

a = np.uint32(1664525)
c = np.uint32(1013904223)
seed = np.uint32(1)

rng = LCG(seed, a, c)
q = [rng.next() for _ in range(0, 25000000)]

在下面的另一个单元格中运行

%%capture cap --no-stderr
print(q)
with open('output.txt', 'w') as f:
    f.write(cap.stdout)
然后又是另一个细胞

%%capture cap --no-stderr
print(q)
with open('output.txt', 'w') as f:
    f.write(cap.stdout)

很抱歉,我忘了添加我找到了这个线程并尝试这么做,但是txt文件是空的,它适合我。txt文件有300mb。我期望的最大容量为10-15mb。300mb的txt对我的电脑来说太多了:Ddo你知道如何让每个数字显示在一个新行中,而不是小数点吗?