如何将数据类型转换为object类型?解决numpy多类型存储冲突
将numpy数据转换为object类型并存储混合类型数组
因为numpy.float64和numpy.datetime64没有兼容的数值 dtype,要把它们存到单个数组里,必须用object类型。以下是具体实现方法:
方法1:直接创建object类型数组并赋值
先初始化一个指定dtype=object的空数组,再分别填入不同类型的数据:
import numpy as np # 准备两种类型的数据 float_vals = np.array([3.14, 2.718, 1.618], dtype=np.float64) datetime_vals = np.array(['2024-03-01', '2024-04-01'], dtype='datetime64[D]') # 创建object类型数组 mixed_array = np.empty(len(float_vals) + len(datetime_vals), dtype=object) # 填充数据 mixed_array[:len(float_vals)] = float_vals mixed_array[len(float_vals):] = datetime_vals
方法2:转换已有数组为object后合并
先将每个类型的数组单独转为object类型,再合并:
import numpy as np float_vals = np.array([3.14, 2.718, 1.618], dtype=np.float64) datetime_vals = np.array(['2024-03-01', '2024-04-01'], dtype='datetime64[D]') # 转换为object类型 float_obj = float_vals.astype(object) datetime_obj = datetime_vals.astype(object) # 合并数组 mixed_array = np.concatenate([float_obj, datetime_obj])
验证结果:打印mixed_array.dtype会得到dtype('O'),数组中可同时容纳float和datetime类型元素。
内容的提问来源于stack exchange,提问作者Aman Raj Das
相关产品推荐
相关产品推荐

