# encoding=utf-8
import numpy as np

x = []
#欧几里得距离
def distance_betwin_p(p1,p2):
    np.sqrt((p1[0] - p2[0]) * (p1[0] - p2[0]) + (p1[1] - p2[1]) ** 2)

#创建一个指定行列的数组,默认值是0或者正无穷或负无穷 ∞
np.empty((3,4))

#科学计数法的读法
1.23e3  #1.23x10的三次方
1.23e-3 #1.23x10负三次方

#实数在计算机里没有对应表示,只能用浮点数无限逼近。所以在处理和0比较的时候要格外小心
#a - b < 0.1e-10 例如相减的时候当结果小于一个极小的数值就认为相等

#矢量是有方向和长度的变量,可以用numpy的多维数组来表示,二维矢量就是平面的一个点

#计算矢量X的范数(长度)
np.linalg.norm(x)
#计算矢量的角度
d = np.arctan(3.0/3.0)
#将弧度转化为角度
np.rad2deg(d) #np.deg2rad()将角度转化为弧度
#向b1方向移动,再向b2方向移动
b1 = np.array([3,0])
b2 = np.array([0,3])
np.linalg.norm(b1 + b2)
#使用两个矢量相减,可以计算两点之间的距离
d1 = np.array([2,7])
d2 = np.array([8,3])
np.linalg.norm(d1 - d2)

#余弦相似度,向量的内积,对应元素想乘,再相加
costheta = d1.dot(d2)/(np.linalg.norm(d1) * np.linalg.norm(d2))

#numpy数组(矢量)默认的+ - x /操作都是对应位置的元素相操作
#-3x**2+5x-6

#TypeError: unsupported operand type(s) for -: 'list' and 'list'

#在X轴上生成20000个从-10000到10000的离散点
#使用矢量计算直接生成多项式-3x**2+5x-6的所有计算结果,注意这里没有使用循环,一次计算了20000个结果
X = np.linspace(-10000,10000,20000)
Y = (X ** 2) * -3 + 5 * X - 6 #矢量运算,计算机会加速此类运算
Y.max()#获取当前矢量中的最大值
Y.argmax()#获取当前数组最大值对应的索引
np.nan #not a number 当数据读取缺失或计算异常时会出现,本质是一个浮点数
np.inf #无穷大
np.exp(10)#以e为底的指数
np.log(10)#对数
np.sin(10)#三角函数
np.sqrt(10)#开方
X.astype(np.int)#将数组类型强制转换为int
X.shape #返回X数组的行列数
n_array = np.array([[1,2,3,4,5],[6,7,8,9,0],[3,4,5,6,7],[7,6,5,4,3],[6,8,9,2,3]])
n_array < 60 #返回满足条件的布尔类型矩阵
n_array[n_array < 60]#将a_array中小于60的数值选择出来
n_array.mean() #求平均值
n_array.std() #标准差
n_array.max() #最大值
n_array.min() #最小值
#n_array[:,1] #选择当前二维数组第二列
#n_array[1,:] #选择当前二维数组第二行
#n_array[:,:,1] #选择当前三维数组第三个维度第二列的所有内容

# def poly_test(l,r,):
#     r_len = r - l
#     max_num = -1000000
#     m_idx = l
#     for i in range(r_len):
#         r_num = l+i
#         result = (r_num ** 2) * -3 + (5* r_num) - 6
#         if result > max_num:
#             max_num = result
#             m_idx = i
#
#     return max_num,m_idx
#
# print poly_test(-10000,10000)

my_matrix = np.loadtxt(open("score.csv","rb"),delimiter=",")
#my_matrix = np.genfromtxt("score.csv",delimiter=",")

#该班级哪门课程成绩最好
#该班哪个同学成绩最好
#该班哪个同学偏科最严重
#该班哪门主课成绩最好
#该班主课和副课对比哪个成绩好
#这个班有多少学生出现了不及格

name_dic = {0:"数学",1:"语文",2:"化学",3:"地理",4:"音乐",5:"体育"}

class CoursaDesc(object):
    def __init__(self):
        self.name = ""
        self.std  = 0
        self.max  = 0
        self.mean = 0
        self.min  = 0
        self.sum  = 0

class ComputerDesc(object):
    def __init__(self,n_array):
        self.score_array = n_array
        self.result = []

def counter_all_coursa(self):
        for i in range(6):
            c_desc =  CoursaDesc()
            c_desc.name = name_dic[i]
            c_desc.std  = self.score_array[:,i].std()
            c_desc.mean = self.score_array[:,i].mean()
            c_desc.max  = self.score_array[:,i].max()
            c_desc.min  = self.score_array[:,i].min()
            c_desc.sum  = self.score_array[:,i].sum()
            self.result.append(c_desc)

def best_coursa(self):
        # std_list = [coursa.std for coursa in self.result]
        # sum_list = [coursa.sum for coursa in self.result]
        std_list = []
        sum_list = []
        for coursa in self.result:
            std_list.append(coursa.std)
            sum_list.append(coursa.sum)

std_array = np.array(std_list)
        sum_array = np.array(sum_list)

#总和最大的单项成绩,例如:数学成绩的max_sum_coursa也就是总和是701
        max_sum_coursa = sum_array.max()
        max_sum_index = sum_array.argmax()#数学成绩总和的索引,例如是0

#方差最小的单项成绩,例如:体育成绩的min_std_coursa也就是方差是30
        min_std_coursa = std_array.min()
        min_std_index  = std_array.argmin()#方差最小成绩的索引,例如是6

if max_sum_index == min_std_index:
            return name_dic[max_sum_index]
        else:
             #总和最大课程的方差取出
             max_sum_coursa_std = std_array[max_sum_index]
             #方差最小课程的总和取出
             min_std_soursa_sum = sum_array[min_std_index]

sum_delta = max_sum_coursa - min_std_soursa_sum
             std_delta = max_sum_coursa_std - min_std_coursa

sum_percent = sum_delta / max_sum_coursa
             std_percent = std_delta / min_std_coursa

if sum_percent < 0.05 and std_percent > 0.2:
                 return name_dic[min_std_index]

Numpy 基本用法相关推荐

  1. numpy.where()用法

    numpy.where() 用法详解 - massquantity - 博客园 numpy.where() 用法详解 - massquantity - 博客园

  2. 【Data Mining】机器学习三剑客之Numpy常用用法总结

    点击"小詹学Python",选择"置顶"公众号 重磅干货,第一时间送达 本文转载自AI蜗牛车,禁二次转载 一.前言 玩数据分析.数据挖掘.AI的都知道这个pyt ...

  3. 【Python数据清洗】numpy.take()用法

    numpy.take()用法 学了Python很长时间了但是一直没有去研究take的使用方法 今天周末加班研究一下 写一个简单的笔记,基本上都是借鉴别人的 其旨在根据提供的索引值将元素形成数组输出,如 ...

  4. 关于numpy.take()用法

    关于numpy.take()用法 此文章是对我当时使用错误后的改正,用以记录下来,并作分享. 首先用numpy定义一个二维数组 import numpy as np a = np.random.uni ...

  5. python numpy allclose用法及代码示例

    python numpy allclose用法及代码示例 用法: numpy.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False) 如果两个数 ...

  6. numpy库函数用法(一):sum函数用法

    专栏: numpy库函数用法 目录 一.sum函数通用格式 二.sum函数相关参数 三.sum函数举例 1.普通求和 2.按单个属性(轴)求和 3.按多个指定属性(轴)求和 四.sum函数总结 一.s ...

  7. NumPy基础用法总结

    公众号关注 "视学算法" 设为"星标",第一时间知晓最新干货~ 转自https://zhuanlan.zhihu.com/p/26478010 numpy可以说 ...

  8. numpy.transpose()用法

    np.transpose()用法 作用: 按照参数的循序转置矩阵 代码: import numpy as np four = np.arange(120).reshape(2,3,4,5) print ...

  9. python代码大全和用法用量_Python numpy.stack()用法及代码示例

    numpy.stack()函数用于沿新轴连接相同尺寸数组的序列.axis参数指定结果轴尺寸中新轴的索引.例如,如果axis = 0,它将是第一个尺寸:如果axis = -1,它将是最后的尺寸. 用法: ...

  10. 客户端码农学习ML —— Numpy基本用法

    本文从创建矩阵.维度变换.矩阵运算.随机数.索引等方面总结numpy中基本用法,脚本首先import numpy as np. 创建矩阵 np.array([1, 2, 3])输出 [1 2 3] n ...

最新文章

  1. 单元测试:使用mocha和should.js搭建nodejs的单元测试
  2. eclipse python_【Python基础】Python基础语法
  3. 技巧速看!如何帮助“表哥”快速玩转报告美化?
  4. hdu 3951 硬币围成一圈(博弈)
  5. 将方法作为方法的参数 —— 理解委托
  6. Typora如何设置图片的默认保存路径
  7. (小米系统系列五)小米/红米国际版系统刷入小米钱包、小米公交、小米门禁卡
  8. 文库下载软件 冰点文库下载器 软件 百度网盘链接地址
  9. RL真的很简单 手把手带你入门强化学习
  10. 乱世王者服务器维护,乱世王者微信541区风平浪静开服时间表_乱世王者新区开服预告_第一手游网手游开服表...
  11. 怎样把网上的短信发送到手机
  12. vue引入图片的方式
  13. 链表的基本操作(C语言)详解(摘取自C语言学习网2.5)
  14. Java操作Word自动生成目录
  15. asp.net大学生学科竞赛报名及管理系统
  16. 编译基于Chrome代码修改的Brave浏览器
  17. XAMPP安装和配置(for mac)
  18. 华为光纤猫HG8245破解
  19. easy ui JS 实现Grid
  20. html js引用本地资源,【基本解决】js加载本地文件

热门文章

  1. iOS开发者账号被封的邮件以及翻译
  2. 11111111【无标题】
  3. 伺服电机在工作中发出噪音是为什么呢?
  4. CSL 的拼图 枚举更新
  5. 半期考试 二三题 (书籍维护 数据库)
  6. 【可以批量、可单独】某音去水印下载工具
  7. ANSYS WORKBENCH——参数化建模以及参数优化(结果导出为Excel)
  8. FZU - 2302  Necklace (dp+斜率优化)
  9. 刚体运动学公式_刚体做平行平面运动时,刚体动能公式为()
  10. 江苏省计算机考试知识点,江苏省计算机一级考试知识点整理