文章目录
- 场景
- 实际操作
- 编写相关函数
- np.apply_along_axis
场景
设想我有一列高维向量,读取之后的数据都是字符串变量,我需要把这些字符串数据转换为复数之后求绝对值
实际操作
在使用pd.read_csv()读取数据之后,将这一列数据转换为numpy数组
data = pd.read_csv(path,header=3).to_numpy() # header表示读取数据的时候要跳过前多少行,我这里需要调过录制的备注信息
print(data.shape) # [12800,1]
编写相关函数
convert_s_c = lambda x : np.abs(np.complex128(x[0].replace('i','j')))
针对每个元素,取到第一个元素就是对应的字符串,替换成j后才能正常的从str对象转换成np.complex复数对象,然后才能使用绝对值进行操作
np.apply_along_axis
ccc = np.apply_along_axis(convert_s_c,-1,ccc)
参数从左到右依次是,需要应用到对应元素的函数,操作的维度,被操作的numpy数组对象
打印形状之后发现正常工作,比写for循环更加可读