gpt4 book ai didi

python - 在 numpy 中禁用静默转换

转载 作者:太空宇宙 更新时间:2023-11-03 11:29:23 25 4
gpt4 key购买 nike

有没有办法在 numpy 中禁用静默转换?

import numpy as np
a = np.empty(10, int)
a[2] = 4 # OK
a[3] = 4.9 # Will silently convert to 4, but I would prefer a TypeError
a[4] = 4j # TypeError: can't convert complex to long

numpy.ndarray 对象是否可以配置为在分配任何不是 ndarray 类型的 isinstance() 的值时返回 TypeError?如果不是,最好的替代方法是子类化 numpy.ndarray(并覆盖 __setattr____setitem__)吗?

最佳答案

不幸的是 numpy 在数组创建中不提供此功能,您可以设置是否仅在转换数组时才允许转换(查看 numpy.ndarray.astype 的文档)。

您可以使用该功能或​​子类 numpy.ndarray,但也可以考虑使用 array python 本身提供的用于创建类型化数组的模块:

from array import array

a = array('i', [0] * 10)
a[2] = 4 # OK
a[3] = 4.9 # TypeError: integer argument expected, got float

关于python - 在 numpy 中禁用静默转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25471180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com