python实战学习之numpy学习
numpy基础要点
1.生成数组 np.array([])
2.变量的类型 numpy.ndarray
3.数据的类型 int8,float64,float32,bool等
4.数据的类型转换 x.astype("float32")
5.保留N位小数 np.round(x,n)
6.切片和索引
6.1 行选择 x[2]或x[2:,:]
6.2 列选择 x[:,4:]
6.3 连续多行 x[2:,:3]
6.4 不连续的几个值 x[[1,3],[2,4]]注:这是选择(1,2)和(3,4)两个位置的值
6.5 索引具体选择某个值 x[2,3]
7.赋值操作 x[2:,3] = 3
8.布尔索引 x[x>10] = 0
9.三元运算符 np.where(x > 10, 20, 0)
10.剪裁 x.clip(5,10) 把小于5的替换为5,大于10的替换为10
11.转置的方法 x.T,x.transpose(),t.swapaxes(1,0)
12.读取本地文件 np.loadtxt(file_path,delimiter.dtype),file_path文件路径,delimiter分隔符,dtype数据类型
13.关于nan
13.1 nan不是一个数字,
13.2 自身不相等(np.nan!=np.nan),
13.3 nan个数统计np.count_nonzero(np.nan!=np.nan),
13.4 nan类型判断np.isnan(x)
14.inf 表示无穷
15.常用的几个统计函数
15.1 x.sum(axis=0) 在某个维度上求和
15.2 np.median(x,axis=0) 在某个维度上的中位数
15.3 x.mean(axis=0) 在某个维度上的平均值
15.4 x.max(axis=0) 在某个维度上的最大值
15.5 np.ptp 计算极差
15.6 x.std 计算标准差梵音数据的离散程度和稳定程度
import numpy as np
import random
# 1.生成数组 np.array([]),np.array(range()),np.arange()
x = np.array([1,2,3,4,5,6])
print("由np.array([])生成的数组:\n",x)
x = np.array(range(24))
print("由np.array(range())生成的数组:\n",x)
x = np.arange(24).reshape(4,6)
print("由np.arange()生成的数组:\n",x)
# 2.变量的类型 numpy.ndarray
print("x的类型:\n",type(x))
# 3.数据的类型 int8,float64,float32,bool等
print("数据的类型:\n",x.dtype)
# 4.数据的类型转换 x.astype("float32")
print("该x的数据的类型:\n",x.astype("float32"))
# 5.保留N位小数 np.round(x,n)
#print("保留三位小数",np.round(np.random(4),3))
print("保留三位小数\n", np.round(np.array([random.random() for i in range(10)]),3))
# 6.切片和索引
# 6.1 行选择 x[2]或x[2:,:]索引从0开始
print("x的第2行:\n",x[2])
print("x从第2行开始到最后:\n",x[2:])
# 6.2 列选择 x[:,4:]
print("x的第4列:\n",x[:,4])
print("x从第4列开始到最后一列:\n",x[:,4:])
# 6.3 连续多行 x[2:,:3]
print("从第二行开始到最后一行,从第一列开始到第三列的区域:\n",x[2:,:3])
# 6.4 不连续的几个值 x[[1,3],[2,4]]<font color='red'>注:这是选择(1,2)和(3,4)两个位置的值</font>
print("选择(1,2)和(3,4)两个位置的值:\n",x[[1,3],[2,4]])
# 6.5 索引具体选择某个值 x[2,3]
print("(2,3)位置的值:\n",x[2,3])
# 7.赋值操作 x[2:,3] = 3
x[2:,3] = 3
print("从第二行开始到最后一行,第三列全部设置为3\n",x)
x = np.arange(24).reshape(4,6)
# 8.布尔索引 x[x>10] = 0
x[x>10] = 0
print("把大于10的数都设置为0\n",x)
x = np.arange(24).reshape(4,6)
# 9.三元运算符 np.where(x > 10, 20, 0)
print("把大于10的数都设置为20,小于10的都设置为0\n",np.where(x > 10, 20, 0))
# 10.剪裁 x.clip(5,15) 把小于5的替换为5,大于15的替换为15
print("把小于5的替换为5,大于10的替换为15 \n",x.clip(5,15))
# 11.转置的方法 x.T,x.transpose(),x.swapaxes(1,0)
print("通过x.T进行的转置\n",x.T)
print("通过x.transpose()进行的转置\n",x.transpose())
print("通过x.swapaxes(1,0)进行的转置\n",x.swapaxes(1,0))
# 12.读取本地文件 np.loadtxt(file_path,delimiter.dtype),file_path文件路径,delimiter分隔符,dtype数据类型
data = np.loadtxt("./code/data.csv",delimiter=",",dtype=int)
print("显示读取的数据的前10行:\n",data[:10])
# 13.关于nan
# 13.1 nan不是一个数字,
# 13.2 自身不相等(np.nan!=np.nan),
print("nan自身不相等",np.nan!=np.nan)
# 13.3 nan个数统计np.count_nonzero(np.nan!=np.nan),
# 13.4 nan类型判断np.isnan(x)
x = x.astype("float")
x[1:,2] = np.nan
print("x中有np.nan值\n",x)
# 用每行的平均值填充该nan值
for i in range(x.shape[0]):#遍历每一行
temp_row = x[i] #当前行
nan_num = np.count_nonzero(temp_row != temp_row) #统计当前行中nan的个数
if nan_num != 0:#如果nan的个数不为0,则用其他值的平均值来填充该值
temp_not_nan_row = temp_row[temp_row == temp_row]#当前行部位nan的数组
#把平均值赋值为不为nan的均值
temp_row[np.isnan(temp_row)] = temp_not_nan_row.mean()
print("调整后的x\n",x)
print("nan的类型为float:\n",type(np.nan))
#如果不设置x的类型为float类型,则上边的循环是不起作用的。
# 14.inf 表示无穷
# 15.常用的几个统计函数
# 15.1 x.sum(axis=0) 在某个维度上求和
# 15.2 np.median(x,axis=0) 在某个维度上的中位数
# 15.3 x.mean(axis=0) 在某个维度上的平均值
# 15.4 x.max(axis=0) 在某个维度上的最大值
# 15.5 np.ptp 计算极差
# 15.6 x.std 计算标准差梵音数据的离散程度和稳定程度
x = np.arange(24).reshape(4,6)
print(x)
print("x的和:",x.sum())
print("x每一列的和:",x.sum(axis=0))
print("x每一列的中位数:",np.median(x,axis=0))
print("x整体平均值:",x.mean())
print("x每一列的平均值",x.mean(axis=0))
print("x整体最大值:",x.max())
print("x每一列的最大值",x.max(axis=0))
print("x的极差",np.ptp(x))
print("x的标准差:",x.std(axis=None))



python实战学习之numpy学习的更多相关文章
- [python]-数据科学库Numpy学习
一.Numpy简介: Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针.这样为了保存一个简单的[1,2,3],需要有3 ...
- NumPy学习笔记 三 股票价格
NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...
- NumPy学习笔记 二
NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
- NumPy学习笔记 一
NumPy学习笔记 一 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
- 深度学习框架搭建之最新版Python及最新版numpy安装
这两天为了搭载深度学习的Python架构花了不少功夫,但是Theano对Python以及nunpy的版本都有限制,所以只能选用版本较新的python和nunpy以确保不过时.但是最新版Python和最 ...
- Python实战:Python爬虫学习教程,获取电影排行榜
Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习 ...
- (转)Python数据分析之numpy学习
原文:https://www.cnblogs.com/nxld/p/6058572.html https://morvanzhou.github.io/tutorials/data-manipulat ...
- 常用统计分析python包开源学习代码 numpy pandas matplotlib
常用统计分析python包开源学习代码 numpy pandas matplotlib 待办 https://github.com/zmzhouXJTU/Python-Data-Analysis
- Python数据分析:Numpy学习笔记
Numpy学习笔记 ndarray多维数组 创建 import numpy as np np.array([1,2,3,4]) np.array([1,2,3,4,],[5,6,7,8]) np.ze ...
随机推荐
- Linux编程之fork函数
在Linux中,fork函数的功能就是在一个进程中创建一个新的进程,当前调用fork函数的进程就是产生的新进程的父进程,新进程在以下也称为子进程.在新进程生成之后就会在系统中开始执行. 函数原型:pi ...
- 20155326《网路对抗》Exp8 WEB基础实践
20155326<网路对抗>Exp8 WEB基础实践 实践内容 (1).Web前端HTML(0.5分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写 ...
- Connect To Ubuntu 16.04 / 17.10 / 18.04 Desktop Via Remote Desktop Connection (RDP) With Xrdp
[1] https://websiteforstudents.com/connect-to-ubuntu-16-04-17-10-18-04-desktop-via-remote-desktop-co ...
- OC协议、代理的简单使用
在不同类之间传递数据,我所学到的有三种,1.代理,2.block,3.通知.在这里,我们先来讲一下代理的使用,后面我会继续讲到block和通知.代理通常和协议是一起使用的,协议通常写在代理类里面,被代 ...
- js的arguments到底是什么?
类数组对象:arguments 总所周知,js是一门相当灵活的语言.当我们在js中在调用一个函数的时候,我们经常会给这个函数传递一些参数,js把传入到这个函数的全部参数存储在一个叫做arguments ...
- tcpdump完全指南
先从第一个最简单的抓包指令开始 抓经过本主机上的所有网络接口的所有ARP.ICMP.IGMP.IP.TCP.UDP等所有网络包(以下简称“所有网络包”) tcpdump -i any -vnn (注: ...
- 05 详解C# 迭代器
迭代器模式是设计模式中行为模式(behavioral pattern)的一个例子,他是一种简化对象间通讯的模式,也是一种非常容易理解和使用的模式. 简单来说,迭代器模式使得你能够获取到序列中的所有元素 ...
- 【webpack】-- 自动刷新与解析
前端需要频繁的修改js和样式,且需要根据浏览器的页面效果不断的做调整:而且往往我们的开发目录和本地发布目录不是同一个,修改之后需要发布一下:另外一点就是并不是所有的效果都可以直接双击页面就能看到,我们 ...
- 【javascript】谈谈HTML5: Web-Worker、canvas、indexedDB、拖拽事件
前言:作为一名Web开发者,可能你并没有对这个“H5”这个字眼投入太多的关注,但实际上它早已不知不觉进入到你的开发中,并且总有一天会让你不得不正视它,了解它并运用它 打个比方:<海贼王> ...
- 聊一聊Java如何接入招行一网通支付功能
1.前提条件 相比较于支付宝和微信的支付功能接入这一块,银行相对来说更加严格,比如说支付宝,在你签约之前可以进行一些测试.但是银行来说就不是这样了,如果您现在要进行招行的支付功能开发的话,请务必先让相 ...