- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在循环中使用numpy.savez
来多次保存多个numpy数组,这里是一个例子:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([5, 6, 12])
for i in range(3):
np.savez("file_info", info1 = a, info2 = b)
print('a => ', a)
print('b => ', b)
a = a * 3
b = b * 2
输出:
a => [1 2 3]
b => [ 5 6 12]
a => [3 6 9]
b => [10 12 24]
a => [ 9 18 27]
b => [20 24 48]
但是当我读取保存的文件时:
npzfile = np.load("file_info.npz")
npzfile['info1']
我只得到最后一个数组(因为内容在每个循环中被删除):
array([ 9, 18, 27])
所以,我的问题是,如何将所有 numpy 数组保存在同一个文件中?
最佳答案
当您保存同名的新文件时,它会覆盖旧文件。为什么不将保存从 for 循环中取出:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([5, 6, 12])
save_info = np.zeros([3, 2, 3]) #array to store all the info
#one dimension for each entry in a, one for as many arrays as you have
#generating info, and one for the number of times you'll loop over it
for i in range(3): #therefore i will be [0, 1, 2]
save_info[:, 0, i] = a #save from the a array
save_info[:, 1, i] = b #save from the b array
a = a * 3
b = b * 2
np.savez("file_info", info1=save_info) #save outside for loop doesn't overwrite
然后我可以从文件中读取信息:
>>> import numpy as np
>>> data = np.load("file_info.npz") #load file to data object
>>> data["info1"]
array([[[ 1., 3., 9.],
[ 5., 10., 20.]],
[[ 2., 6., 18.],
[ 6., 12., 24.]],
[[ 3., 9., 27.],
[ 12., 24., 48.]]])
编辑:或者,如果您避免创建一个大数组,则可以在每次循环时重命名要保存的文件:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([5, 6, 12])
for i in range(3): #therefore i will be [0, 1, 2]
np.savez("file_info_"+str(i), info1=a, info2=b)
#will save to "file_info_0.npz" on first run
#will save to "file_info_1.npz" on second run
#will save to "file_info_2.npz" on third run
a = a * 3
b = b * 2
编辑:您可能更愿意创建两个较小的数组,一个用于 a,一个用于 b:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([5, 6, 12])
save_a = np.zeros([3, 3]) #array to store all the a runs
save_b = np.zeros([3, 3]) #array to store all the b runs
for i in range(3): #therefore i will be [0, 1, 2]
save_a[:, i] = a #save from the a array
save_b[:, i] = b #save from the b array
a = a * 3
b = b * 2
np.savez("file_info", info1=save_a, info2=save_b) #save outside for loop doesn't overwrite
关于python - 如何在循环中使用 `numpy.savez`来保存多个numpy数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42749520/
我最近发现了这样的说法: np.savez is not multi-process safe, because it always uses gettempdir() + key + ".npy".
我想在循环中使用numpy.savez来多次保存多个numpy数组,这里是一个例子: import numpy as np a = np.array([1, 2, 3]) b = np.array([
我惊讶地发现,如果您使用 numpy.savez 将相同的 numpy 对象保存到文件,创建的文件是不确定的。例如, import numpy x = numpy.random.rand(1000,
我正在使用 numpy savez作为recommended保存 numpy 数组。作为键,我使用我从中加载数据的文件的名称。但似乎 savez 正试图以某种方式使用文件名。我应该怎么办?我想避免剥离
加载 npz 文件后,我喜欢能够使用键访问数组,例如: KEY1 = "names" file = np.load(npzFilename) data = file[KEY1] 但是你必须在保存
我正在尝试保存一组数据以及标题信息。目前,我正在使用 numpy.savez() 将标题信息(字典)保存在一个数组中,将数据保存在另一个数组中。 data = [[1,2,3],[4,5,6]
函数numpy.savez()允许在文件中存储 numpy 对象。在两个文件中存储相同的相同对象会产生两个不同的文件: import numpy as np some_array = np.arang
从一个循环中我得到了一个数组。我想将此数组保存在 tempfile 中。问题是 np.savez 只保存循环中的最后一个数组。我想我明白为什么会这样,但不知道如何做得更好。 为了解决我的问题,我想在
我可以使用 np.savez 存储字典吗?结果令人惊讶(至少对我而言),我无法找到一种方法来通过 key 取回我的数据。 In [1]: a = {'0': {'A': array([1,2,3]),
这里是第一个问题。我会尽量简洁。 我正在为机器学习应用程序生成包含特征信息的多个数组。由于数组的维度不同,我将它们存储在字典中而不是数组中。有两种不同的功能,所以我使用了两种不同的词典。 我还生成标签
numpy.savez 在最后一个示例中,使用 savez 和 **kwds,数组将与关键字名称一起保存。 outfile = TemporaryFile() np.savez(outfile, x=
我想在序列化的未压缩文件(大约 6 GB 的数据)中存储大约 4000 个 numpy 数组(每个 1.5 MB)。这是一个包含 2 个小数组的示例: import numpy d1 = { 'arr
假设我的程序创建了大量数据,然后我使用 numpy 的 savez 例程保存这些数据。但是,我还想将一些附加信息与该数组一起存储。例如当前版本的 git commit id,以及用于生成数据的输入参数
我想用定义的名称保存任意数量的 np.arrays。这是我的示例,考虑到我有一个包含三个的姓名列表和(当然)三个数组要保存: import numpy as np l = [np.random.ran
我想用定义的名称保存任意数量的 np.arrays。这是我的示例,考虑到我有一个包含三个的姓名列表和(当然)三个数组要保存: import numpy as np l = [np.random.ran
我正在尝试使用 numpy 的 savez和 load (令人惊讶的是)保存和加载 numpy 数组的方法足够大,以至于我之前使用的方法(保存为 JSON)明显很慢。 我在以下代码片段中重现了我遇到的
我有 5 个 numpy 数组 a,b,c,d 和 e 都定义为: array([1, 2, 3, 4, 5, 6, 7, 8, 9]) 我像这样保存这些数组: np.savez_compressed
我最近才开始使用 numpy,并且想知道一些事情。我有一个 numpy 数组,拆分后看起来像这样: [array([1,2,3]), array([4,5,6])] 我想使用 numpy.savez
我想编辑由 numpy savez 函数生成的 zip 文件。例如,我们可以制作一个 zip 文件,如 >>> import numpy as np >>> x = np.array([1,2,3])
我是一名优秀的程序员,十分优秀!