数值计算

pandas操作excel操作-05-批量数据操作

百般思念 提交于 2020-02-29 13:43:26
import pandas as pd def add_2(x): return x+2 books = pd.read_excel('D:/output.xlsx', index_col='idx') # 列之间的数值计算1 books['TotalMoney'] = books['SinglePrice'] * 0.8 # 列之间的数值计算2 books['TotalMoney'] = books['SinglePrice'] * books['Discount'] # 列之间的数值计算3 books['SinglePrice'] = books['SinglePrice'] + 2 # 只对某几行进行计算, # 列之间的数值计算4 for i in range(5, 8): books['TotalMoney'].at[i] = books['SinglePrice'].at[i] * books['Discount'].at[i] # 列之间的数值计算5 books['SinglePrice'] = books['SinglePrice'].apply(add_2) # 列之间的数值计算6 books['SinglePrice'] = books['SinglePrice'].apply(lambda x: x+5) print(books) books.to_excel(

【Python数据分析】数值计算和统计基础

試著忘記壹切 提交于 2020-02-17 23:57:15
目录 1.axis与skipna参数的使用 2.常用统计方法 3.求累计值:cumsum(累计和),累计积 4.唯一值:unique 5.值计数:value_counts() 6.成员资格:isin() 1.axis与skipna参数的使用 注意: np.nan 表示空值 # 建立数据集 import numpy as np import pandas as pd df = pd.DataFrame({'key1':[4,5,6,np.nan,2], # np.nan表示空值 'key2':[1,2,np.nan,15,10], 'key3':[1,2,3,'m','n'], 'key4':['a1','a2','a3','a4','a5']},index = ['a','b','c','d','e'] ) print(df) print('-----------------分割线-------------------') # 打印每列数据类型 print(df['key1'].dtype,df['key2'].dtype,df['key3'].dtype,df['key4'].dtype) # 求整体平均值(只会对数字列进行统计) print('----------------整体平均------------------') print(df.mean()) # 根据索引求平均值

java8-数值计算

空扰寡人 提交于 2020-01-13 23:28:30
BigDecimal 求和 BigDecimal amount = list.stream().map(Order::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add); List 计算某属性的和 //方式一 int goodsQty = list.stream().mapToInt(OrderDetail::getGoodsSum).sum(); //方式二 int goodsQty = list.stream().collect(Collectors.summingInt(OrderDetail::getGoodsSum)).intValue(); 分组后计算每组数据某属性的和 Map<String,Integer> goodsSum = list().stream().collect(Collectors.groupingBy(OrderDetail::getGoodsSku,Collectors.summingInt(OrderDetail::getGoodsSum))); 分组后计算每组数据的数量 Map<String,Long> mobileMap = list.stream().collect(Collectors.groupingBy(Customer::getMobile, Collectors.counting(

在shell中做数值计算

六眼飞鱼酱① 提交于 2019-12-17 18:01:33
shell自带的计算符号只能计算整数 例如: echo $[1+1] echo $((1+2)) 还有let命令,expr命令 但是都并不好用,只能进行整数的运算,如果要计算小数,可以使用bc命令工具 另外其实除了bc,还可以使用awk来进行数值计算,功能更加强大,而且方便,因为awk本身就是一门编程语言,主要用于对文本的处理,对数据的处理自然不在话下! 要想使用awk计算,建议使用BEGIN模式,熟悉awk的人知道awk的命令行语法是这样的: awk [选项] ‘BEGIN{执行语句...}{执行语句...}END{执行语句...}’ 文本文件 在单引号里面的三个大括号并不是都要同时有的,都是可选的。 BEGIN后面的大括号跟的是预处理语句,在执行时,并没有读取文本数据,一般就是定义初始化变量用的;中间的大括号是真正在处理文本的语句,END后面的大括号是处理完所有语句的输出总结。 如果用来做数值计算,可以用BEGIN模式就可以了,这样不需要跟任何标准输入 例如: awk 'BEGIN{print 1.2+2}' awk 'BEGIN{print 100-50}' awk 'BEGIN{print 1.2*2}' awk 'BEGIN{print 100/50}' awk 'BEGIN{print 2**2}' awk 'BEGIN{print 3+2*1}' 来源: 51CTO

数值计算实验报告

匿名 (未验证) 提交于 2019-12-03 00:18:01
问题描述 算法分析 高斯消去法 高斯消去法的过程与我们平常进行人工解方程组的过程相似,即通过行倍加,倍乘变换,行交换等将矩阵化简为一个三角矩阵再进行求解。化简过程通过每次迭代计算出乘数因子进行化简。以第一次迭代为例: 第一次迭代的乘数因子为 m i 1 = a ( 1 ) i 1 / a ( 1 ) 11 m i 1 = a i 1 ( 1 ) / a 11 ( 1 ) 再将 -m_{ij} 乘第一个方程,加到第i个方程。 这就是我们常说的行倍加变换。 需要注意的是,每次迭代的每行首位都不能为0,因此常常需要交换行 列主元消去法 列主元消去法和高斯消去法特别相似,只是增加了一些交换行的步骤。每次选取列主元中最大的一个,判断它是否为零,若非零,与第一行(相对于子矩阵)进行交换。 数值实验 高斯消去法 编写函数guasselim进行高斯消元,并计算其运行时间。迭代过程通过循环完成 for k = 1 :n- 1 ; %compute the kth column of M m(k+ 1 :n ) = A (k+ 1 :n ,k)/ A (k,k); %compute % An = Mn * An - 1 %bn= Mn *bn- 1 ; for i=k+ 1 :n A (i,k+ 1 :n ) = A (i,k+ 1 :n )-m(i)* A (k,k+ 1 :n ); end ; b

Python数值计算工具-Numpy学习笔记

痞子三分冷 提交于 2019-11-29 08:29:06
1 数组的创建与操作 1.1 数组的创建 # 导入模块,并重命名为np import numpy as np # 单个列表创建一维数组 arr1 = np . array ( [ 3 , 10 , 8 , 7 , 34 , 11 , 28 , 72 ] ) # 嵌套元组创建二维数组 arr2 = np . array ( ( ( 8.5 , 6 , 4.1 , 2 , 0.7 ) , ( 1.5 , 3 , 5.4 , 7.3 , 9 ) , ( 3.2 , 3 , 3.8 , 3 , 3 ) , ( 11.2 , 13.4 , 15.6 , 17.8 , 19 ) ) ) print ( '一维数组:\n' , arr1 ) print ( '二维数组:\n' , arr2 ) 一维数组: [ 3 10 8 7 34 11 28 72 ] 二维数组: [ [ 8.5 6 . 4.1 2 . 0.7 ] [ 1.5 3 . 5.4 7.3 9 . ] [ 3.2 3 . 3.8 3 . 3 . ] [ 11.2 13.4 15.6 17.8 19 . ] ] 1.2 数组元素的获取 # 一维数组元素的获取 print ( arr1 [ [ 2 , 3 , 5 , 7 ] ] ) # 二维数组元素的获取 # 第2行第3列元素 print ( arr2 [ 1 , 2 ] ) #

EXCEL数据计算不准确的问题

≯℡__Kan透↙ 提交于 2019-11-27 07:18:28
今天,某部门的excel的数值计算,总是出现错误。如下图 ,我们的46那一栏是有前面8*6得出来的,但是结果却显示46,明明应该是48才对,然后再往上追,8是有前面的337-329得出来的,337是有3269*10.3%得出来的,这就是重点所在,就是因为这个10.3%导致的数值计算精确度下降,四舍五入的多了,最后得出了8*6=46的恐怖结果,要想解决这个问题,解决办法就是,提高精确度, 打开,文件-》选项-》高级-》将精度设为所显示的精度 如下图 将这个勾调上,然后一路确定就OK了 如下图所示 出现了正确的计算结果 来源: https://www.cnblogs.com/Lonelychampion/p/11350489.html

数值计算day8-数值积分

China☆狼群 提交于 2019-11-27 02:24:43
上节课主要介绍了计算微分的几种数值方法,对一阶微分,最简单的莫过于两点前向差分、后向差分和中心差分这三种方法,其中中心差分的精度最高,这三种差分公式都可以通过推导泰勒展开式得到,而通过泰勒展开式还可以推导出三点前向差分和三点后向差分。对二阶微分,则可以推导出三点中心差分、三点前向差分、三点后向差分公式。这些数值方法均可以推广到数值偏微分的领域,且对于两个精度不高的数值算法,还可以使用Richardson外推加速算法得到一个精度更高的算法。本节课主要介绍计算积分的数值方法。 1. 矩形和中点法 区间$[a,b]$上的积分表示的是曲线$f(x) \(在\) [a,b] \(内的面积,若将\) [a,b]$分解为$n$个小区间: \(a=x_0<x_1<\cdots<x_n=b\) ,$J_i=[x_,x_i]$区间内的面积可以估算为一个黎曼和: \(A_i=f(x^*_i)\Delta x_i\) ,其中$x^*_i$表示$J_i$内的某个点, \(\Delta x_i = x_i-x_{i-1}\) ,此时积分即为黎曼求和的极限: \(I(f)=\int^b_{a}f(x)dx=\lim_{n \rightarrow \infty,\Delta x \rightarrow 0}\sum^n_{i=1}f(x^*_i)\Delta x_i\) 其中$\Delta x = \max {