如何解决numpy 数组操作的问题
我对 numpy 的矢量化操作世界很陌生,
X = np.full((4,5),[2,2,2])
>>> array([[2,2],2]])
我正在尝试将 numpy 对数应用于奇数索引列,只是这样做:
X[:,1::2] = np.log(X[:,1::2])
但输出出乎意料:
array([[2,2]])
有什么问题吗?真的很想知道答案。
解决方法
您的问题与数据类型有关 - 您将 X 隐式初始化为整数。要修复您可以在 dtype
中设置 np.full
:
X = np.full((4,5),[2,2,2],dtype=float)
log(2)
的值为 0.69..
。由于在制作 numpy 数组时没有给出数据类型,程序将 X
视为具有 int
数据类型的 numpy 数组。
因此,它基本上将 0.69....
转换为 0
。所以,这就是为什么你得到 0
而不是 0.69..
。
它将每个 float
数据类型转换为 int
。
如果您想要 float
数据类型,请将数据类型指定为 float
X = np.full((4,dtype=float)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。