本文主要是介绍避免使用for循环操作高维数组:numpy.apply_along_axis用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 场景
- 实际操作
- 编写相关函数
- 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循环更加可读
这篇关于避免使用for循环操作高维数组:numpy.apply_along_axis用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!