numpy的一些基本操作
文章目录
NumPy(Numerical Python) 是 Python 语言中做科学计算的基础库。重在于数值计算,也是大部分Python科学计算库的基础,多用于在大型、多维数组上执行的数值运算。
1.numpy数组的多种创建方式
1.1使用np.array()创建
使用array创建一个一维数组:
import numpy as np
arr1 = np.array([1,2,3])
使用array创建一个多维数组;
import numpy as np
arr1 = np.array([1,2,3],[1,2,3])
1.2使用plt创建
使用python中matploylib库,这个库中有一个imread方法,可以读取文件夹的图片,并转化为多维数组的形式存储起来,并且可以通过操作数组的方式对图片颜色进行操作。
import matplotlib.pyplot as plt
arr2 = plt.imread("1.png")
arr2
1.3使用np的routine函数创建
- zero()
- ones()
- linespace()
- arange()
- random系列
arr3 = np.zeros(shape = (3,4))#创建一个三维数组,所有元素都为0
arr4 = np.ones(shape = (3,4))#创建一个三维数组,所有元素都为1
arr5 = np.linspace(1,100,num = 20)#创建一个等差数列一维数组
arr6 = np.arange(1,10)#创建一个1-10的数组
arr7 = np.random.randint(1,10,size = (3,4))#创建一个三维随机数数组
2.numpy的常用属性
2.1shape
shape - 这是一个用于表示数组形状的元组。它告诉我们每个维度的大小。例如,对于一个二维数组,形状将告诉我们行数和列数。
nums1 = np.array([[1,2,3],[4,5,6]])
print(nums1.shape)
2.2ndim
这是表示数组维度数量的整数。一个一维数组的 ndim 为 1,二维数组为 2,以此类推。
nums2 = np.array([[1,2,3],[4,5,6]])
nums2.ndim
2.3size
这是一个整数,表示数组中元素的总数。它是所有维度大小的乘积。
nums3 = np.array([[1,2,3],[4,5,6]])
nums3.size
2.4dtype
这是一个对象,表示数组中元素的数据类型。例如,整数、浮点数或自定义数据类型。
nums4 = np.array([[1,2,3],[4,5,6]])
nums4.dtype
3.numpy的索引和切片
索引操作和列表同理
3.1切出前两列数据
arr = np.random.randint(1,100,size=(5,6))
arr[:,0:2]#取出前两列的数据
3.2切出前两行数据
arr[0:2]#取出前两行的数据
3.3切出前两行的前两列的数据
arr[0:2,0:2]
3.4数组数据翻转
arr[::-1]#将数组行倒置
arr[::,::-1]#将数组列倒置
arr[::-1,::-1]#将数组行倒置和列倒置
3.5练习:将一张图片上下左右进行翻转操作
arr_image = plt.imread("1.png")
arr_image = arr_image[::-1]
plt.imshow(arr_image)
3.6练习:将图片进行指定区域的裁剪
plt.imshow(arr_image[60:100,200:500,])
4.统计&聚合&矩阵操作
4.1常用的统计函数
- numpy.amin() 和 numpy.amax(),用于计算数组中的元素沿指定轴的最小、最大值。
- numpy.ptp():计算数组中元素最大值与最小值的差(最大值 - 最小值)。
- numpy.median() 函数用于计算数组 a 中元素的中位数(中值)
- 标准差std():标准差是一组数据平均值分散程度的一种度量。
- 公式:std = sqrt(mean((x - x.mean())**2))
- 如果数组是 [1,2,3,4],则其平均值为 2.5。 因此,差的平方是 [2.25,0.25,0.25,2.25],并且其平均值的平方根除以 4,即 sqrt(5/4) ,结果为 1.1180339887498949。
- 方差var():统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数,即 mean((x - x.mean())** 2)。换句话说,标准差是方差的平方根。
num.std()
num.var()
4.2常用的聚合操作
sum,max,min,mean
num = np.array([[69, 80, 7, 90, 31, 44],
[37, 57, 26, 92, 91, 34],
[13, 16, 93, 54, 87, 34],
[ 5, 16, 47, 66, 51, 12],
[54, 63, 20, 11, 94, 88]])
num.sum(axis = 1)
num.max(axis = 1)
4.3常用的矩阵操作
- NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。一个 的矩阵是一个由行(row)列(column)元素排列成的矩形阵列。
- numpy.matlib.identity() 函数返回给定大小的单位矩阵。单位矩阵是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为 1,除此以外全都为 0。
arr.T#转置矩阵
#矩阵相乘
a1 = np.array([[2,1],[4,3]])
a2 = np.array([[1,2],[1,0]])
np.dot(a1,a2)
numpy的一些基本操作的更多相关文章
- numpy库常用基本操作
NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推.在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量.比如说,二维数组相当于是一个一维数 ...
- Numpy 数据类型和基本操作
Numpy 数据类型 bool 用一位存储的布尔类型(值为TRUE或FALSE) inti 由所在平台决定其精度的整数(一般为int32或int64) int8 整数,范围为128至127 int1 ...
- Python Numpy 矩阵级基本操作(2)
1.开方与求e指数 import numpy as np from numpy.matlib import randn print "Test sqrt and exp" arr ...
- Python Numpy 矩阵级基本操作(1)
NumPy的操作介绍 import numpy as np #导入numpy包,简写为np print "Generate 1*10 matrix" a=np.arange(1,1 ...
- Numpy | ndarray数组基本操作
搞不懂博客园表格的排版... 说明: 0 ndarray :多维数组对象 1 np :import numpy as np 2 nda :表示数组的名称 1 生成数组 函数名 描述 np.array ...
- 第四十篇 入门机器学习——Numpy.array的基本操作——向量及矩阵的运算
No.1. Numpy.array相较于Python原生List的性能优势 No.2. 将向量或矩阵中的每个元素 + 1 No.2. 将向量或矩阵中的所有元素 - 1 No.3. 将向量或矩阵中的所有 ...
- 第三十八篇 入门机器学习——Numpy.array的基本操作——查看向量或矩阵
No.1. 初始化状态 No.2. 通过ndim来查看数组维数,向量是一维数组,矩阵是二维数组 No.3. 通过shape来查看向量中元素的个数或矩阵中的行列数 No.4. 通过size来查看数组中的 ...
- 玩转NumPy数组
一.Numpy 数值类型 1.前言:Python 本身支持的数值类型有 int(整型, long 长整型).float(浮点型).bool(布尔型) 和 complex(复数型).而 Numpy 支持 ...
- Numpy学习笔记(上篇)
目录 Numpy学习笔记(上篇) 一.Jupyter Notebook的基本使用 二.Jpuyter Notebook的魔法命令 1.%run 2.%timeit & %%timeit 3.% ...
- 第三十七篇 入门机器学习——Numpy基础
No.1. 查看numpy版本 No.2. 为了方便使用numpy,在导入时顺便起个别名 No.3. numpy.array的基本操作:创建.查询.修改 No.4. 用dtype查看当前元素的数据类型 ...
随机推荐
- IntersectionObserver + scrollIntoView 实现电梯导航
电梯导航也被称为锚点导航,当点击锚点元素时,页面内相应标记的元素滚动到视口.而且页面内元素滚动时相应锚点也会高亮.电梯导航一般把锚点放在左右两侧,类似电梯一样.常见的电梯导航效果如下,比如一些官方文档 ...
- TSP 的遗传算法
省流:不如模拟退火 打 OI 的时候一直对乱搞很感兴趣,只是没时间学,现在算是弥补一下吧 旅行商问题(Traveling Salesman Problem, TSP):求无向图边权和最小的哈密顿回路 ...
- Linux驱动|cdev_init、cdev_alloc区别
这两个函数是字符设备初始化相关的内核函数. 要想了解这两个函数,必须要知道字符设备的架构,以及字符设备创建的流程. 关于字符设备可以参考下面这篇文章 <手把手教Linux驱动3-之字符设备架构详 ...
- WM_ERASEBKGND
WM_ERASEBKGND是在当窗口背景必须被擦除时 (例如,窗口的移动,窗口的大小的改变)才发送. 当窗口的一部分无效需要重绘时发送此消息. #define WM_ERASEBKGND 0x0014 ...
- 免费、开源、详细完整的unity游戏、游戏源码、教程:人工智能分析和处理对话的美好三维世界(定期更新)
这份unity游戏.游戏源码.教程:完全免费,完全开源,完整详细,通俗易懂,适合初学者入门,定期更新. 我不想和任何人说话,任何人不要跟我说话,不要打扰我,我要安安静静的写.我解释一下原因: 俗话说& ...
- c# RSA加密解密,与java代码互通问题
RSA加密解密原本是公开算法,但是和一个java的小伙伴对接却出现了点问题,现在记录一下 首先,RSA的公钥私钥,有2种: 1.pem格式. 2.xml格式. 文章底部有pem格式和对应的xml样本数 ...
- C++ 高效使用智能指针的8个建议
C++ 高效使用智能指针的8个建议 前言:智能指针是C++11提供的新特性,它基于RAII实现,可以自动管理内存资源,避免内存泄漏的发生,但是智能指针也并不是万能的,如果不正确使用智能指针,也会导致内 ...
- 十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明)
十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明) @ 目录 十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明) 1. 基本介绍 2. 准备工作 3. ...
- MyBatis——案例——查询-多条件查询(多参数接收的三种方法)
查询-多条件查询 编写接口方法:Mapper接口 参数:所有条件查询 List<Brand> selectByCondition(int status,String com ...
- linux操作系统和文件系统,命令(上)
Linux是一个类似于windows的操作系统 Linux操作系统的一种主要使用方式是通过终端软件:终端软件里只能使用键盘不能使用鼠标,在终端软件里通过输入命令完成各种任务 clear命令可以删除终端 ...