如何将numpy.ndarray数组转换为numpy.float64类型?
NumPy二维(N,1)数组转float64类型一维序列实现方法
首先需要说明:numpy.float64是NumPy的标量数值类型,仅能存储单个数值,无法承载多值序列。你给出的期望输出形式是多值一维序列,实际需求是得到元素类型为numpy.float64的一维ndarray,和你展示的输出结构匹配。
你当前的输入是形状为(n, 1)的二维ndarray,每个数值单独占一行,只需要移除冗余的长度为1的维度,再按需指定元素类型即可,实现如下:
import numpy as np # 模拟你的输入数组 origin_arr = np.array([[0.], [1.], [1.], [0.], [0.], [0.]]) # 展平为一维数组,指定元素类型为float64 result = origin_arr.flatten().astype(np.float64)
- 对于这种
(n,1)形状的数组,也可以用origin_arr.squeeze()替换flatten(),效果完全一致,都是去掉长度为1的维度,得到形状为(n,)的一维数组。 - 如果原始数组的元素本身就是浮点数,
.astype(np.float64)可以省略,NumPy默认浮点数类型就是float64。
转换后验证属性:
print(result.dtype) # 输出float64,即每个元素都是numpy.float64类型 print(result) # 输出 [0. 1. 1. 0. 0. 0.],和你期望的序列形式一致
如果你需要得到列表结构的结果,直接对展平后的数组转list即可:
result_list = list(result)
内容的提问来源于stack exchange,提问作者Thorsten Dieck
相关产品推荐
相关产品推荐

