当前位置: 首页 > news >正文

numpy 基础使用

NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。

首先引入numpy

import numpy as np

ndarray

NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型。 它描述相同类型的元素集合。 可以使用基于零的索引访问集合中的项目。

ndarray中的每个元素在内存中使用相同大小的块。 ndarray中的每个元素是数据类型对象的对象(称为 dtype)。

ndarray对象提取的任何元素(通过切片)由一个数组标量类型的 Python 对象表示。 下图显示了ndarray,数据类型对象(dtype)和数组标量类型之间的关系。

image-20231112140721397

ndarray常用属性:

属性含义
ndim维度(轴)的个数
shape维度,轴,形状大小
size元素的总个数
dtype元素的数据类型
itemsize元素的字节大小
num = np.random.randn(2,3)
print(num)
print("数据类型:", type(num))
print("维度个数:", num.ndim) # 行数
print("维度大小(n,m):", num.shape)
print("元素总个数:", num.size)
print("元素的数据类型:", num.dtype)
print("元素的字节大小:", num.itemsize)

image-20231112133133273

array函数

array具有以下功能:

  • 将任意的序列对象转换为数组
  • 支持将特定的嵌套序列转换为高维数组
  • 自动推断生成的数据类型
# 将列表转为数组类型
num1 = np.array([1,2,34])
num2 = np.array([ [1,2, 34],[34, 2, 1]])
# 设置元素类型
num3 = np.array([[1,2,34],[34,2,1]
], dtype='float32')print(num1)
print(num2)
print(num3)

image-20231112133849276

zeros函数

用法与array函数相似。创建全0数组,默认元素类型是浮点数类型;使用元组指定创建数组的形状。

# 创建 3行4列的全0矩阵
num = np.zeros((3,4))
print(num)

image-20231112134105447

ones函数

zeros函数一样,只不过是创建全0数组,默认元素类型是浮点数。

# 创建 3行4列的全1矩阵
num = np.ones((3,4))
print(num)

image-20231112134226823

empty函数

创建一个未初始化的数组。元素为内存中不确定值。

# 创建 3行4列的全1矩阵
num = np.empty((3,4))
print(num)

arange函数

arange()类似于python的内置函数range(),通过指定开始值终值步长来创建表示等差数列的一维数组,返回给定间隔内的均匀间隔值,注意得到的结果数组不包含终值

image-20231112134504698

image-20231112134528191

arange()函数有四个个参数,分别是start(开始值)、stop(终值)、step(步长)和dtype(数组类型)。

开始值可选,默认值是0,包含在数组中

终止值必选,不包含在数组中

步长可选,默认是1

# 长度为0到9
num1 = np.arange(10)
print(num1)# 长度为0到9的偶数
num2 = np.arange(0, 10,2)
print(num2)# 长度为0到9的奇数
num3 = np.arange(1,10,2)
print(num3)

image-20231112134931337

其他函数

  • asarray函数:类似array函数,但若转换对象为数组时,仅创 建一个引用,而array为深拷贝。
  • ones_like函数:创建一个与指定数组相同形状的全1数组。
  • zeros_like函数:创建一个与指定数组相同形状的全0数组。
  • empty_like函数:创建一个与指定数组相同形状的未初始化数组。

数据类型

Numpy 的类型C 的类型描述
np.int8int8_t字节(-128到127)
np.int16int16_t整数(-32768至32767)
np.int32int32_t整数(-2147483648至2147483647)
np.int64int64_t整数(-9223372036854775808至9223372036854775807)
np.uint8uint8_t无符号整数(0到255)
np.uint16uint16_t无符号整数(0到65535)
np.uint32uint32_t无符号整数(0到4294967295)
np.uint64uint64_t无符号整数(0到18446744073709551615)
np.intpintptr_t用于索引的整数,通常与索引相同 ssize_t
np.uintpuintptr_t整数大到足以容纳指针
np.float32float
np.float64 / np.float_double请注意,这与内置python float的精度相匹配。
np.complex64float complex复数,由两个32位浮点数(实数和虚数组件)表示
np.complex128 / np.complex_double complex请注意,这与内置python 复合体的精度相匹配。

还有许多别名等,详情看:数据类型 | NumPy

数据类型的表示

既可以用类型本身,如np.int32,也可以用类型名称字符串,例如int32,还可以用类型代码字符串,例如i4

类型转换

使用astype方法进行数组之间的类型转换。

默认生成一个新数组。

num = np.arange(1,10,1.5)
print(num)num1 = num.astype(int)
print(num1)

image-20231112140030354

数组运算

  • 相同形状的数组之间的运算逐元素执行。

  • 数组与标量间的运算,将计算参数传递给 数组的每一个元素。

num1 = np.array([1, 2, 3])
num2 = np.array([3, 4, 5])# 相同形状的数组之间的运算逐元素执行。
print(num1 + num2)# 数组与标量间的运算,将计算参数传递给 数组的每一个元素。
print(num1 + 100)

image-20231112140443699

Python之Numpy详细教程_python numpy-CSDN博客

NumPy 介绍 | NumPy

http://www.lryc.cn/news/227024.html

相关文章:

  • sqlite3编译脚本
  • 环形链表解析(c语言)c语言版本!自我解析(看了必会)
  • 科技云报道:数智化升级,如何跨越数字世界与实体产业的鸿沟?
  • Rt-Thread 移植6--多线程(KF32)
  • HarmonyOS应用开发-首选项与后台通知管理
  • 通过easyexcel导出数据到excel表格
  • Android---MVP 中 presenter 声明周期的管理
  • Oracle中的索引碎片
  • Java必刷入门递归题×5(内附详细递归解析图)
  • android 闪屏图适配尺寸
  • 正则表达式中(?s)与(?m)的区别
  • Clickhouse学习笔记(11)—— 数据一致性
  • 【uniapp】六格验证码输入框实现
  • 【react hook】在react hook组件中,使用Antd Table组件,columns数据异步获取,list数据更新但没有rerender解决办法
  • ChatGPT的图识别来了
  • java Stream编程笔记
  • 顶顶通语音识别使用说明
  • 重磅发布 OpenAI 推出用户自定义版 ChatGPT
  • Java 幼儿园(20231111)读取 json 文件
  • 云计算、大数据技术的智慧工地,实现对建筑工地实时监测、管理和控制的一种新型建筑管理方式
  • 功能案例 -- 通过开关,改变白天和黑夜
  • Linux编写一个极简版本的Shell
  • 亚马逊云AI应用科技创新下的Amazon SageMaker使用教程
  • Eigen:旋转向量(Angle-Axis)转换为四元素和旋转矩阵
  • C#8.0本质论第十二章--泛型
  • Python与ArcGIS系列(七)自动化打印地图
  • 基于STM32单片机抢答器设计
  • 冯·诺伊曼体系结构--操作系统
  • IDEA插件开发--持久化配置信息方案
  • Vscode禁止插件自动更新