|
3 years ago | |
---|---|---|
README.md | 3 years ago |
README.md
python
曲线为y=sinx/x+1在[0, 10π]区间上的图像,要求定积分∫_0^10π▒(sinx/x+1)。 import numpy as np def MCint(f, a, b, n, fmin,fmax): x = np.random.uniform(a, b, n) y = np.random.uniform(fmin, fmax, n) cnt = y[ (y>0) & (y < f(x))].size #横轴上方部分 cnt-= y[ (y<0) & (y > f(x))].size #横轴下方积分为负数 area = cnt/n*(b-a)(fmax-fmin) return area print(MCint(lambda x:np.sin(x)/x + 1, 0,10np.pi, 1000000, 0,2)) 输出结果:32.94902375084975
import numpy as np data1 = [6, 7.5, 8, 0, 1] arr1 = np.array( data1) print(arr1) 输出: [ 6. , 7.5, 8. , 0. , 1. ]
shape指出数组的形状,shape是个元组 ndim指出数组的维度 dtype指出数组中的元素的类型 reshape函数可以改变数组的维度 astype 函数可生成一个新的数组,并指定新的dtype import numpy as np data1 = 6, 7.5, 8, 0, 1], [3.2, 3, 7, 52, 23.4 arr1 = np. array( data1) print(arr1.shape, arr1.ndim, arr1.dtype) 输出: (2, 5) 2 float64
import numpy as np arr1 = np.array([1,2,3,4,5,6]) #6个元素的一维数组 arr1 = arr1.reshape(2,3) #改变为:2行3列的二维数组 print(arr1) arr2 = arr1.astype(str) print(arr2) 输出: [[1 2 3] [4 5 6]] [['1' '2' '3'] ['4' '5' '6']]
zeros 和 ones 函数可以创建指定长度或形状的全0或全1数组。 np.ones(6) array([1., 1., 1., 1., 1., 1.])
创建初始值为0,终值为1,步长为0.1的等差数组 np.arange(0, 1, 0.1) array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
创建初始值为0,终值为1,元素个数为10的等差数组 np.linspace(0, 1,10) # 步长为 1/9,lin是linear的缩写 arnay([ 0. , 0.11111111, 0.22222222, 0.33333333, 0.44444444, 0.55555556, 0.66666667, 0.77777778, 0.88888889, 1. ])
创建从10的0次方到10的平方,共5个元素的等比数列 np.logspace(0, 2, 5) array([ 1. , 3.16227766, 10. , 31.6227766 , 100. ])
numpy.random.rand(d0, d1, ..., dn):生成一个[0,1)之间的随机浮点数或N维浮点数组。 #生成2行3列的随机数数组,值在[0,1)之间 numpy.random.rand(2, 3)
numpy.random.randn(d0, d1, ..., dn):生成一个浮点数或N维浮点数组,取数范围:正态分布的随机样本数。 生成2行3列的随机数数组,值为正态分布的随机样本数 numpy.random.randn(2, 3)
生成包含10个元素的值在[0,100) 的数组 np.random.randint(0, 100, 10)
生成2*3维的值在[0,100) 的数组 np.random.randint(0, 100, (2,3))
迭代法计算斐波那契数列 n=() a,b=0,1 for i in range(n): a,b=b,a+b print(b)
fn2,fn1=1,1 fn=0 #当前月份兔子数 n=2 #月份n uplimit=eval(input("兔子数:")) while fn<=uplimit: fn=fn2+fn1 n+=1 fn2=fn1 fn2,fn1=fn1,fn fn1=fn print('第0月份,兔子数达到{}对'.format(n,fn)) print(第0月份,兔子数达到{}对超过{}.format(n,fn,uplimit))