数据分析05 numpy案例
温度数据分析[28,30,29,31,32,30,29]计算平均气温最高气温低气温找出气温超过30的天数import numpy as nptemps np.array([28,30,29,31,32,30,29])print(temps)保留3位小数print(“平均气温:%.3f”%np.mean(temps))print(“最高气温:%.3f”%np.max(temps))print(“最低气温:%.3f”%np.min(temps))布尔查找print(“气温超过30的天数”)print(temps[temps30])print(“超过30的天数”,len(temps[temps30]))使用where来实现day np.where(temps30,1,0)count 0for i in day:if i !0:count1print(f超过30天的天数:{count})输出为[28 30 29 31 32 30 29]平均气温:29.857最高气温:32.000最低气温:28.000气温超过30的天数[31 32]超过30的天数 2超过30天的天数:2学生成绩统计5名学生的数学成绩为[85,90,78,92,88]计算成绩的平均分中位数标准差将成绩转换为百分之(假设满分为10)score np.array([85,90,78,92,88])print(score)累积/总个数print(f平均分:{np.mean(score)})中间的数排序后的中间的数print(f中位数{np.median(score)})标准差print(f标准差:{np.std(score)})全部除以1085变成8.5 满分是10的话print(score/10)矩阵的运算img随机数据的生成生成一个3*4的随机数组 范围[0,10)计算每列的最大值和每行的最小值将数组中所有奇数替换为-1np.random.seed(10)arr np.random.randint(0,10,(3,4))print(arr)axis0 表示列 1 表示行print(“每列的最大值”,np.max(arr,axis0))print(“每行的最小值”,np.min(arr,axis1))条件筛选print(np.where(arr%21,-1,arr))第二个解决方法arr[arr%21] -1arr[0][0] -1 就是第一行的第一个元素变成-1arr[0] -1 就是第一行全部元素变成-1print(arr)[[9 4 0 1][9 0 1 8][9 0 8 6]]每列的最大值 [9 4 8 8]每行的最小值 [0 0 0][[-1 4 0 -1][-1 0 -1 8][-1 0 8 6]][[-1 4 0 -1][-1 0 -1 8][-1 0 8 6]]数组变形创建1到12的一维数组并转换为(3,4)的二维数组计算每行和每列的平均值将数组展平为一维数组arr np.array([1,12,3,4,5,6,7,8,9,10,11,12])arr np.arange(1,13)print(arr)3*412 就是等于这个数据arr np.reshape(arr,(3,4))原数组就变成了二维数组了print(arr)print(“每行的和”,np.sum(arr,axis1))print(“每列平均值”,np.mean(arr,axis0))arr np.reshape(arr,(12))print(arr)输出wield[ 1 2 3 4 5 6 7 8 9 10 11 12][[ 1 2 3 4][ 5 6 7 8][ 9 10 11 12]]每行的和 [10 26 42]每列平均值 [5. 6. 7. 8.][ 1 2 3 4 5 6 7 8 9 10 11 12]布尔索引生成一个(5,5)随机数组范围[0,20)找出数组中大于10的元素将所有大于10的元素替换为0np.random.seed(10)arr np.random.randint(0,20,(5,5))print(arr)print(“大于10的元素”,arr[arr10])arr[arr10]0print(arr)统计函数应用某公司销售额 [120,135,110,125,130,140]计算销售额总和均值和方差找出销售额最高的月份和最低的月份money np.array([120,135,110,125,130,140])print(“总和:”,np.sum(money))print(“平均值”,np.mean(money))print(“方差:”,np.var(money))print(“最高的月份”,np.max(money),np.argmax(money)1)print(“最低的月份”,np.min(money),np.argmin(money)1)总和: 760平均值 126.66666666666667方差: 97.22222222222223最高的 140 6最低的 110 3数组拼接a [1,2,3]b[4,5,6]水平拼接新数组垂直拼接新数组a np.array([1,2,3])b np.array([4,5,6])print(np.concatenate([a,b]))c np.concatenate([a,b])print(np.reshape(c,(2,3)))[1 2 3 4 5 6][[1 2 3][4 5 6]]唯一值与排序[2,1,2,3,1,4,3]找出数组中唯一值并排序计算每个唯一值出现的次数arr np.array([2,1,2,3,1,4,3])print(np.unique(arr))u_arr ,counts np.unique(arr,return_countsTrue)print(u_arr)print(counts)