首页 > 编程语言 >Python数据分析 numpy 笔记

Python数据分析 numpy 笔记

时间:2024-04-09 15:34:13浏览次数:32  
标签:数据分析 10 Python random 数组 np numpy ndarray

 B站课链接:【Python数据分析三剑客:NumPy、Pandas与Matplotlib】 https://www.bilibili.com/video/BV1Yb4y1g7SV/?p=16&share_source=copy_web&vd_source=e883bdf439c7a2e47e9145990387a56b

 

014,开始使用numpy

(1),numpy介绍

 

 

 (2),导入numpy库,并查看numpy版本

#数据分析三剑客
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
np.__version__

 (3)实例:读取猫图片的数据

#我自己电脑上的图片(猫咪1.jpg),注意路径是 / ,只有一个/
#图片:其实是数字组成的,三维数组
# RGB  红Red,绿Green,蓝Blue
# RGB 范围:0~255
# plt.imread : 读取图片的数据
cat = plt.imread('C:/Users/romantic/Pictures/Saved Pictures/猫咪1.jpg')
cat

type(cat)
# numpy.ndarray : 多维数组
# nd : n维度,多维
# array : 数组

#查看形状:三维
# (540, 960, 3)
#  高度:540行
#  宽度:960列
#  3 表示的RGB(red,green,blue)的值
cat.shape

#显示图片
plt.imshow(cat)
# (540, 960, 3)

 

# 图片:3维数据(彩色)
#       2维数据(黑白)
# 视频:4维数据
#     (x,540, 960, 3),x表示多少张图片

#一切皆数据,一切皆矩阵(在数据中)

 

015,创建ndarray数组

 ndarray是numpy中表示数组的重要类型

(1),使用np.array() 创建

参数为列表:[1,4,2,5,3]

I = [1,4,2,3,5,6]
n = np.array(I)
n

type(n) #类型
# numpy.ndarray

n.shape #形状,6表示一维数组里有6个元素
# I.shape # 列表没有shape

# 优先级:str>float>int
n = np.array([3.14,2,"hello"])
n

 

(2),使用np的routines函数创建

 (2.1)ones

n = np.ones(shape=(3,4)) #3行4列
n

n = np.ones(shape=(3,4,5),dtype=np.int16) # 3个二维数组,每个二维数组是4行5列,类型为整型
# n = np.ones(shape=(3,4,5),dtype=int)
n

 

(2.2)zeros

n = np.zeros((5,5),dtype=np.int16) # 5行5列,类型为整型
n

 (2.3)full

n = np.full(shape=(3,4),fill_value=2) # 3行4列,所有元素都为2
n

 

(2.4)eye

#对角线为1,其他位置为0的二维数组
#单位矩阵:主对角线都是1,其他都是0
n = np.eye(6,6,dtype=np.int8) # 6行6列,类型为整型
n

# k=2:向右偏移2个位置
n = np.eye(6,6,k=2,dtype=np.int8)
n

# k=-2:向左偏移2个位置
n = np.eye(6,6,k=-2,dtype=np.int8)
n

 (2.5)linspace

#等差数列
# 1,3,5,7,9
n = np.linspace(0,100,num=51,dtype=np.int16) #0~2占了一份,其他2~100中间有50份
n

# endpoint=False
n = np.linspace(0,100,num=51,endpoint=False)# 不包含100 
n

#retstep=True : 显示步长
n = np.linspace(0,100,num=51,retstep=True)
n

 

(2.6)arange

n = np.arange(10) # 0~9,不包含10
n

n = np.arange(2,10) # 2~9,不包含10
n

n = np.arange(2,10,2) # 2~9,不包含10,步长为2
n

 

(2.7)random.randint

# 随机整数,范围:[0,3]
n = np.random.randint(3)
n

# 随机整数,范围:[3,10]
n = np.random.randint(3,10)
n

# 随机整数:一维,一维数组里有6个元素
n = np.random.randint(3,10,size=6)
n

# 随机整数:二维,3行4列
n = np.random.randint(3,10,size=(3,4))
n

# 随机整数:三维,也可以理解为:3个二维数组,每个二维数组是4行5列
n = np.random.randint(3,10,size=(3,4,5))
n

 

(2.8)random.random

n = np.random.random(size=(3,4))
n

 

017,ndarray常用属性

cat.shape  # 三维数组
# (540, 960, 3)
# 第一个维度:540
# 第二个维度:960
# 第三个维度:3
# 有几个数字就表示几维

cat.ndim # 维度

cat.size # 总数据量   540*960*3

cat.dtype # 元素类型
# uint8:无符号整数

 

018,索引操作(以下代码直接截图了)

 

 

根据索引修改数据

 

 

 

019,切片操作

一维与列表完全一致,多维同理

 

 

 

 

020,翻转操作

 

 

021,数组变形reshape

使用reshape函数

 

 

022,数组的级联合并

(22.1)np.concatenate()

  • 参数是列表或元组
  • 级联的数组维度必须相同
  • 可通过axis参数改变级联的方向

 

(22.2)np.hstack 与 np.vstack

  • 水平级联与垂直级联

 

 023,数组的拆分/切分/分割

 

 

 

 

 

 

 025,聚合函数

 

 

 

(25.1)np.sum 和 np.nansum (nan:not a number)

  • nan:数值类型,not a number:不是一个正常的数值,表示空
  • np.nan:float类型

 

 029,数组的快速排序

 

 

 030,文件IO操作

(30.1)保存数组

  •  save:保存ndarray到一个npy文件
  • savez:将多个array保存到一个npz文件中

生成的文件

 

 (30.2)读取数组

 

 (30.3)csv,txt文件的读写操作

 

 031,练习题讲解1

 (31.1)创建一个长度为10的一维全为0的ndarray对象,然后让第5个元素等于1

 (31.2)创建一个元素为从10到49的ndarray对象

 (31.3)将第2题的所有元素位置反转

 (31.4)使用np.random.random创建一个10*10的ndarray对象,并打印出最大最小元素

 (31.5)创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0

第1种方法

 第2种方法

 (31.6)创建一个每一行都是从0到4的5*5矩阵

 

032,练习题讲解2

(32.1)给定一个4维矩阵,如何得到最后两维的和?

 (32.2)给定数组[1,2,3,4,5],如何得到在这个数组的每个元素之间插入3个0后的新数组

 (32.3)给定一个二维矩阵,如何交换其中两行的元素?

  (32.4)矩阵的每一行的元素都减去该行的平均值

 (32.5)打印出如下矩阵(要求使用np.zeros创建8*8的矩阵)

 

标签:数据分析,10,Python,random,数组,np,numpy,ndarray
From: https://www.cnblogs.com/romantichuaner/p/18104031

相关文章

  • 利用python在网上接单赚钱,兼职也能月入过万,还不赶紧学起来
    学习python编程,不仅可以找一份高薪工作,而且如果不打算转行或者是在校学生的话,也能为你日常生活工作提供一些帮助。Python就是以其简单易学的特性而闻名于世的,所以不一定非得是程序员才学它,其他行业的零基础人员也能轻松学会,并利用它开创副业赚钱。Python兼职副业:可以到一......
  • 学会Python爬虫,你也能月薪过万!
    随着懂爬虫、学习爬虫的人越来越多,Python爬虫的岗位需求也越来越大。一方面,互联网可以获取的数据越来越多。另一方面,像Python这样的编程语言提供越来越多的优秀工具,也让爬虫变得简单、容易上手。利用爬虫我们可以获取大量的价值数据,从而获得感性认识中不能得到的信息。而......
  • Python爬虫实例
    使用正则表达式和爬虫爬虫实例一:#第好几个方法实例importrequests#先导入爬虫的库,不然调用不了爬虫的函数importre#下面是可以正常爬取的区别,更改了User-Agent字段headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/53......
  • MQTT用python写的收消息例子
    在MQTT官网给的sub_wss.py例子中修改改写自己的用户名和密码BROKER='*******.ala.cn-hangzhou.emqxsl.cn'//改成自己的连接地址USERNAME='**************'//用户名PASSWORD='*************'//密码注意这句是改使用v1回调API(与旧版本的库一起使用)。原......
  • python应援灯牌代码
    代码如下importpygameimportsysimportrandom#初始化Pygamepygame.init()#设置窗口尺寸WINDOW_WIDTH=800WINDOW_HEIGHT=600window_surface=pygame.display.set_mode((WINDOW_WIDTH,WINDOW_HEIGHT))pygame.display.set_caption('应援语跑马灯模拟')......
  • ludic 基于纯python 开发动态html 页面的框架
    ludic使用了htmx进行页面的处理,同时基于starlette提供asgiweb能力包含的特性基于python的无缝的htmx集成快速开发web基于python类型系统的类型组件基于starlette的异步搞性能web处理基于pythonf-strings的html构建基于主题的组件css样式添加说明目前ludic......
  • 深入学习Python (一)
    一、字面量在代码中,被写下来的固定的值,称之为字面量。二、字符串格式化语法“%占位符%”%变量f"内容{变量}"精度的控制我们可以使用辅助符号"m.n"来控制数据的宽度和精度m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效.n,控制小数点精度,要求是数字,会......
  • java计算机毕业设计基于微信小程序与python的智能办公【附源码+远程部署+程序+mysql】
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着移动互联网技术的飞速发展,传统的办公模式正逐渐向智能化、移动化转型。微信小程序作为一种新型的应用形式,因其无需下载安装、即用即走的便捷性,已经成......
  • Python中的异常处理 异常是什么? 异常处理的语法 基本的异常处理示例 捕获多个异常 fin
    Python中的异常处理异常是什么?异常处理的语法基本的异常处理示例捕获多个异常finally语句自定义异常异常处理的最佳实践——《跟老吕学Python编程》附录资料Python中的异常处理异常是什么?异常处理的语法基本的异常处理示例Python捕获多个异常finally语句Py......
  • python对于excel的操作
    python可以通过开源框架openpyxl来对excel进行读写操作。基本概念:对于excel,其中的主要用到的元素如下:WorkBook:工作簿WorkSheet:sheet表Cell:单元格style:样式Border:框线Font:字体Alignment:对齐...helloworld的demo:fromopenpyxlimportWorkbook#一开始新建是存储在内......