- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我可以使用 np.savez 存储字典吗?结果令人惊讶(至少对我而言),我无法找到一种方法来通过 key 取回我的数据。
In [1]: a = {'0': {'A': array([1,2,3]), 'B': array([4,5,6])}}
In [2]: a
Out[2]: {'0': {'A': array([1, 2, 3]), 'B': array([4, 5, 6])}}
In [3]: np.savez('model.npz', **a)
In [4]: a = np.load('model.npz')
In [5]: a
Out[5]:
In [6]: a['0']
Out[6]: array({'B': array([4, 5, 6]), 'A': array([1, 2, 3])}, dtype=object)
In [7]: a['0']['B']
-------------------------------------------------- -------------------------
ValueError Traceback (most recent call last)
in ()
----> 1 a['0']['B']
ValueError: field named B not found
In [8]: dict(a['0'])
-------------------------------------------------- -------------------------
TypeError Traceback (cuộc gọi gần đây nhất là cuối cùng)
in ()
----> 1 dict(a['0'])
TypeError: iteration over a 0-d array
我不明白到底发生了什么。似乎我的数据变成了一个 0 维数组中的字典,让我无法按键取回我的数据。还是我遗漏了什么?
所以我的问题是:
Cảm ơn!
câu trả lời hay nhất
可以恢复数据:
In [41]: a = {'0': {'A': array([1,2,3]), 'B': array([4,5,6])}}
In [42]: np.savez('/tmp/model.npz', **a)
In [43]: a = np.load('/tmp/model.npz')
注意 dtype 是“object”。
In [44]: a['0']
Out[44]: array({'A': array([1, 2, 3]), 'B': array([4, 5, 6])}, dtype=object)
并且数组中只有一项。该项目是 Python 字典!
In [45]: a['0'].size
Out[45]: 1
Bạn có thể sử dụng item()
方法检索值(注意:这KHÔNGitems()
字典的方法,也不是 NpzFile
的任何固有内容类,而是numpy.ndarray.item()
phương pháp将数组中的值复制到标准 Python scalars .在 sự vật
dtype 数组中,数组单元格(甚至字典)中保存的任何值都是 Python 标量:
In [46]: a['0'].item()
Out[46]: {'A': array([1, 2, 3]), 'B': array([4, 5, 6])}
In [47]: a['0'].item()['A']
Out[47]: array([1, 2, 3])
In [48]: a['0'].item()['B']
Out[48]: array([4, 5, 6])
Sẽ Một
恢复为字典的字典:
In [84]: a = np.load('/tmp/model.npz')
In [85]: a = {key:a[key].item() for key in a}
In [86]: a['0']['A']
Out[86]: array([1, 2, 3])
关于python - 使用 np.savez 存储字典会产生意想不到的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22661764/
有时评估积分非常困难,但很容易验证解是否正确。在我看来它至少应该是 np,但我对这个概念的理解是有限的,我可能会遗漏一些东西 编辑:为了清楚起见,我很好奇算法的复杂性,该算法找到函数的反导数以解决不定
我对这三个类别的理解是否正确? 要证明问题 X 是 NP: 表明 X 可以在多项式时间内确定性地得到验证(或者X 可以使用 NTM 解决) 要证明问题 X 是 NP 完全的: 表明 X 可以在多项式时
有什么区别NP , NP-完全和 NP-Hard ? 我知道网上有很多资源。我想阅读你的解释,原因是它们可能与外面的不同,或者有一些我不知道的东西。 最佳答案 我假设您正在寻找直观的定义,因为技术定义
我正在寻找一种方法来检查 numpy 数组是 np.float64 还是 np.float32。这适用于 np.float64: a = np.random.rand(10) if not issub
我知道 np.nanargmin 找到列表中不是 NaN 的最小数字。但是,如果调用数组 [np.nan, np.inf],它会产生 0,这是一个 NaN。我发现这种行为很奇怪,我只是想知道以这种方式
đóng cửa. Câu hỏi này không tuân thủ các nguyên tắc của Stack Overflow. Hiện tại nó không chấp nhận câu trả lời. Sự cố này dường như không liên quan đến việc lập trình trong phạm vi được xác định trong trung tâm trợ giúp. . Đã đóng cửa 8 năm trước. Cải thiện
我很好奇使用 np.empty 到底有多大不同?而不是 np.zeros ,以及关于 np.ones 的区别.我运行这个小脚本来对每个创建大型数组所花费的时间进行基准测试: import numpy
在操作矩阵的时候,不同的接口对于矩阵的输入维度要求不同,输入可能为1-D,2-D,3-D等等。下面介绍一下使用Numpy进行矩阵维度变更的相关方法。主要包括以下几种: 1、np.newaxis扩充
除了使用一组 or 语句之外 isinstance( x, np.float64 ) 或 isinstance( x, np.float32 ) 或 isinstance( np.float16 )
我尝试了以下代码,但没有发现 np.dot 和 np.multiply 与 np.sum 之间的区别 这里是 np.dot 代码 logprobs = np.dot(Y, (np.log(A2)).T
我编写了一些程序来更新 numpy在每次迭代中列出并对其进行一些操作。迭代次数取决于时间。例如在 1 秒内,可能有 1000 到 2500 次迭代。这意味着 numpy 列表中的项目对于运行程序 1
我有以下两个数据框: a = pd.DataFrame([[1,2, 3],[4,3,6], [np.nan, 2, np.nan]]) 0 1 2 0 1.0 2 3.0 1
我有一个包含很多非零值的数组。当我使用以下方法计算非零项目总数时,我得到了 2 个不同的结果: 1) non_zero_weights = np.any(np.not_equal(lr_l1.coef
我对这么多int有点挣扎cython 中的数据类型。 np.int, np.int_, np.int_t, int 我猜 int在纯python中相当于np.int_ , 那么 np.int 在哪里来
如果您要选择以下三种初始化零数组的方法之一,您会选择哪一种以及为什么? my_arr_1 = np.full(size, 0) 或 my_arr_2 = np.zeros(size) 或 my_arr
我正在使用 np.select 根据应用于其他列的多个条件创建一个新列。这是一个简单的例子: df = pd.DataFrame({'A': [0, 3, 4], 'B': [10, 0, 2]})
我正在使用 np.select 根据应用于其他列的多个条件创建一个新列。这是一个简单的例子: df = pd.DataFrame({'A': [0, 3, 4], 'B': [10, 0, 2]})
我正在读这个code ,用于从头开始实现线性回归: # convert from data frames to numpy matrices X = np.matrix(X.values) y = n
我正在解压缩具有许多不同数据类型的大型二进制文件 (~1GB)。我正处于创建循环以隐藏每个字节的早期阶段。我一直在使用 struct.unpack,但最近认为如果我使用 numpy 它会运行得更快。然
我需要从依存分析树中提取形式为 NP-VP-NP 的三元组,作为 Stanford Parser 中词汇化分析的输出。 执行此操作的最佳方法是什么。例如如果解析树如下: (ROOT (S
Tôi là một lập trình viên xuất sắc, rất giỏi!