叮当猫咪
在不知道您的数据究竟如何的情况下,我只需要自己制作一些...>>> import numpy as np>>> M = np.arange(20).reshape((4,5))array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]])要获取最后两列的所有行,您可以使用[:,-2:]:>>> M[:,-2:]array([[ 3, 4], [ 8, 9], [13, 14], [18, 19]])然后,只需应用正弦函数numpy.sin:>>> np.sin(M[:,-2:])array([[ 0.14112001, -0.7568025 ], [ 0.98935825, 0.41211849], [ 0.42016704, 0.99060736], [-0.75098725, 0.14987721]])关于您更新/新添加的代码:您得到 aTypeError因为您的line变量不是numpy数组,更不用说二维数组/矩阵,而只是一个简单的一维纯 Python 列表。您仍然可以使用np.sin该列表,但您将不得不对其进行切片,[-2:]因为它是一维的。此外,这f2.write()没有意义;您没有向文件写入任何内容,而只是将结果打印到标准输出。此外,您正在覆盖您的输入文件;不确定这是不是有意的。相反,您可能希望使用numpy.loadtxt和numpy.savetxt读取并保存整个数据集。尝试这样的事情:import numpy as npdata = np.loadtxt("input.dat", delimiter=",")result = np.sin(data[:,-2:])np.savetxt("output.dat", result, fmt="%.2f", delimiter=",")