diff --git a/README.md b/README.md index 6376748..b16d734 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,81 @@ # 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,10*np.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) \ No newline at end of file