【发布时间】:2020-06-24 03:03:29
【问题描述】:
所以我正在尝试使用以下代码创建一个 numpy darray 对象:
a = np.ndarray(shape=(3,3),dtype='float32',buffer=np.array([[100,2,3],[4,5,6],[7,8,9]]))
这将返回以下内容:
[[1.4e-43 0.0e+00 2.8e-45]
[0.0e+00 4.2e-45 0.0e+00]
[5.6e-45 0.0e+00 7.0e-45]]
为什么它返回的值与我指定的不同?
似乎 float32 正在改变一些事情,因为当 dtype='int' 像这样:
a = np.ndarray(shape=(3,3),dtype='int',buffer=np.array([[100,2,3],[4,5,6],[7,8,9]]))
这会返回正确的内容,例如:
[[100 2 3]
[ 4 5 6]
[ 7 8 9]]
为什么当 dtype='float32' 时它不起作用?
【问题讨论】:
-
因为您正在传递一个具有 dtype=float32 的缓冲区...为什么您期望它的工作方式有所不同?为什么要使用
numpy.ndarray构造函数开始?为什么不np.array([[100,2,3],[4,5,6],[7,8,9]], dtype='float32')???
标签: python buffer numpy-ndarray dtype