【发布时间】:2017-06-30 04:58:31
【问题描述】:
在python的numpy中,为什么ogrid总是产生int64的结果?
对于我的应用程序,我不想使用int64,因为内存限制(当输出组件稍后一起广播时会起作用)。有没有比事后重铸更好的选择:
y, x = np.ogrid[:9000,:9000]
y = y.astype(np.int16)
x = x.astype(np.int16)
对于大多数其他 numpy 调用,更简洁的解决方案是使用 dtype=... 可选参数,但 ogrid 不会作为函数调用。相反,它似乎可以与a+b 之类的运算符相媲美,只是它们通常具有np.add(a,b,dtype=np.int8) 之类的替代方案。
【问题讨论】:
标签: python numpy memory array-broadcasting