0%

Python小技巧(3)--处理数字、时间和日期

处理数字、时间和日期----来源于cookbook第三章

记录第三章中比较有意思的部分


精确的小数计算

使用decimal中的Decimal类就可以实现精确小数计算,而避免引入浮点数误差。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

from decimal import Decimal

# 传统浮点数会引入误差
a = 4.2
b = 2.1
print(a + b) # 6.300000000000001
print(a + b == 6.3) # False

# 使用Decimal
a = Decimal('4.2')
b = Decimal('2.1')
print(a + b) # 6.3
print(a + b == Decimal('6.3')) # True

精确的分数计算

使用fractions中的Fraction可以精确的计算分数

1
2
3
4
5
6
7

from fractions import Fraction

a = Fraction(5,4)
b = Fraction(7,16)
print(a + b) # 27/16

numpy的matrix与array在处理矩阵上的微妙区别

matrix是矩阵,而array主要是数组,两者在运算上存在一些区别

  • 首先array的***都是点乘,其矩阵乘法需要使用np.dot()

  • 而matrix的***都是矩阵乘法,其点乘需要用到np.multiply()

  • matrix求逆可以直接.I,而array求逆需要使用np.linalg.inv()