如何提取NumPy数组中lambda列的全部整数部分并保存为变量?
问题解决:保存NumPy数组所有元素的整数部分
数据集与读取代码
数据集内容:
18.49528 88.29922 2.955 19.24444 103.70188 528.784 24.79509 107.41260 36.138 24.80513 107.40091 33.336
读取数据的代码:
import numpy as np file = np.loadtxt('data.txt') phi = file[:,0] lambda_ = file[:,1] # 注意:`lambda`是Python关键字,建议改名避免语法冲突 Z = file[:,2]
问题描述
尝试通过循环获取lambda列所有元素的整数部分时,变量A仅保留最后一个值:
for i in lambda: print(int(i)) A = (int(i))
解决方案
方法1:使用NumPy向量化操作(推荐)
NumPy原生支持数组级别的批量操作,无需循环,效率远高于逐元素遍历:
# 方式1:用astype(int)直接截断小数部分,效果和int(i)完全一致 A = lambda_.astype(int) # 方式2:用np.floor向下取整(仅正数场景和上述效果一致,负数场景会保留更小的整数) A = np.floor(lambda_).astype(int) # 方式3:用np.int_直接转换类型 A = np.int_(lambda_)
以上方法都会返回一个包含所有元素整数部分的NumPy数组,可直接用于后续计算。
方法2:用列表保存循环结果(不推荐,仅兼容小数据集)
如果一定要用循环实现,需要先初始化一个空列表,每次循环将结果追加进去:
A = [] for i in lambda_: A.append(int(i)) # 可选:将列表转换为NumPy数组,方便后续计算 A = np.array(A)
注意事项
lambda是Python的内置关键字,用于定义匿名函数,将其作为变量名会引发语法错误,建议改用lambda_或lon(经度的常用缩写)这类名称。
内容的提问来源于stack exchange,提问作者Joan Lopez
相关产品推荐
相关产品推荐

