微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

numpy 数组操作的问题

如何解决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 举报,一经查实,本站将立刻删除。