numpy - 位移时保留标量 dtype
问题描述
我有一个 32 位 uint 标量,如何在不向上转换 dtype 的情况下对其进行位移?
x = np.uint32(123456789)
x << 11
int64 输出:
252839503872
预期输出:
3731400704
可以通过做得到我想要的输出np.uint32((x << 11) & 0xFFFFFFFF)
,但是对于这样一个简单的操作来说,语法感觉是多余的。
解决方案
两个参数都必须具有所需的 dtype:
In [80]: np.left_shift(x,np.uint32(11))
Out[80]: 3731400704
In [81]: x<<np.uint32(11)
Out[81]: 3731400704
x<<11
是一个简单的操作,但dtype
有np.array(11)
控制权。
推荐阅读
- c# - HttpContext.Current.Request.UserHostAddress - 无法从 WIndows se 获取 IP 地址并返回 null
- nginx - 监控部署在(GKE)集群上的 Nginx
- android - videoRecording Failed 摄像头设备遇到严重错误
- nuxt.js - Open Graph 链接共享仅在松弛消息框上不起作用
- docker - Docker 容器中的 .Net Core 5 API 项目无法与 docker run 或 docker-compose 一起使用 - 没有错误
- laravel - 前面的欺骗性网站| Laravel 应用部署在 cpanel 上
- apache-spark - 从 UDF pyspark 返回复杂的嵌套数组类型
- matlab - MATLAB:n 天的时间序列图
- google-sheets - 谷歌表中是否可以保护某些列,但允许添加/删除行?
- node.js - Heroku dyno 不断重启