Numpy 基本用法
# 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 基本用法相关推荐
- numpy.where()用法
numpy.where() 用法详解 - massquantity - 博客园 numpy.where() 用法详解 - massquantity - 博客园
- 【Data Mining】机器学习三剑客之Numpy常用用法总结
点击"小詹学Python",选择"置顶"公众号 重磅干货,第一时间送达 本文转载自AI蜗牛车,禁二次转载 一.前言 玩数据分析.数据挖掘.AI的都知道这个pyt ...
- 【Python数据清洗】numpy.take()用法
numpy.take()用法 学了Python很长时间了但是一直没有去研究take的使用方法 今天周末加班研究一下 写一个简单的笔记,基本上都是借鉴别人的 其旨在根据提供的索引值将元素形成数组输出,如 ...
- 关于numpy.take()用法
关于numpy.take()用法 此文章是对我当时使用错误后的改正,用以记录下来,并作分享. 首先用numpy定义一个二维数组 import numpy as np a = np.random.uni ...
- python numpy allclose用法及代码示例
python numpy allclose用法及代码示例 用法: numpy.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False) 如果两个数 ...
- numpy库函数用法(一):sum函数用法
专栏: numpy库函数用法 目录 一.sum函数通用格式 二.sum函数相关参数 三.sum函数举例 1.普通求和 2.按单个属性(轴)求和 3.按多个指定属性(轴)求和 四.sum函数总结 一.s ...
- NumPy基础用法总结
公众号关注 "视学算法" 设为"星标",第一时间知晓最新干货~ 转自https://zhuanlan.zhihu.com/p/26478010 numpy可以说 ...
- numpy.transpose()用法
np.transpose()用法 作用: 按照参数的循序转置矩阵 代码: import numpy as np four = np.arange(120).reshape(2,3,4,5) print ...
- python代码大全和用法用量_Python numpy.stack()用法及代码示例
numpy.stack()函数用于沿新轴连接相同尺寸数组的序列.axis参数指定结果轴尺寸中新轴的索引.例如,如果axis = 0,它将是第一个尺寸:如果axis = -1,它将是最后的尺寸. 用法: ...
- 客户端码农学习ML —— Numpy基本用法
本文从创建矩阵.维度变换.矩阵运算.随机数.索引等方面总结numpy中基本用法,脚本首先import numpy as np. 创建矩阵 np.array([1, 2, 3])输出 [1 2 3] n ...
最新文章
- 单元测试:使用mocha和should.js搭建nodejs的单元测试
- eclipse python_【Python基础】Python基础语法
- 技巧速看!如何帮助“表哥”快速玩转报告美化?
- hdu 3951 硬币围成一圈(博弈)
- 将方法作为方法的参数 —— 理解委托
- Typora如何设置图片的默认保存路径
- (小米系统系列五)小米/红米国际版系统刷入小米钱包、小米公交、小米门禁卡
- 文库下载软件 冰点文库下载器 软件 百度网盘链接地址
- RL真的很简单 手把手带你入门强化学习
- 乱世王者服务器维护,乱世王者微信541区风平浪静开服时间表_乱世王者新区开服预告_第一手游网手游开服表...
- 怎样把网上的短信发送到手机
- vue引入图片的方式
- 链表的基本操作(C语言)详解(摘取自C语言学习网2.5)
- Java操作Word自动生成目录
- asp.net大学生学科竞赛报名及管理系统
- 编译基于Chrome代码修改的Brave浏览器
- XAMPP安装和配置(for mac)
- 华为光纤猫HG8245破解
- easy ui JS 实现Grid
- html js引用本地资源,【基本解决】js加载本地文件