numpy入门笔记

news2024/12/27 3:24:39

学习参考:
菜鸟教程
numpy入门博客
numpy入门视频

NumPy安装

默认情况使用国外线路,国外太慢,我们使用清华的镜像

pip3 install numpy scipy matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

一、创建数组

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

在这里插入图片描述
在这里插入图片描述

  • 一维数组
import numpy as np

arr1 = [1, 2, 3, 4, 5]
arr2 = [10, 20, 30, 40, 50]
print(arr1 + arr2)

arr3 = np.array(arr1)
arr4 = np.array(arr2)
print(arr3 + arr4)
print(arr4 / arr3)
print(arr3.shape) # (行,列)
print(arr3.max(), arr3.argmax()) # 最大值,最大值索引(从0开始)
print(arr3.ndim) # 维度

在这里插入图片描述

  • 二维数组
import numpy as np

arr1 = np.array([[1, 2, 3],[4, 5, 6]])
print(arr1)
print(arr1.ndim)
print(arr1.shape)

在这里插入图片描述

  • 创建默认值数组
    • 创建全零数组的用途是初始化一个具有特定形状和大小的数组,其中所有元素都设置为0。在处理图像或其他数据时,全零数组可以用作初始值或占位符。例如,假设我们要读取一个尺寸为(255,255,255)的图片,我们可以创建一个相同维度的全零数组,然后将图片读入该数组进行填充。这样做的好处是,我们可以直接将原始图像数据存储在全零数组中,而无需担心数据溢出或其他问题。
    • 全1数组同理
    • 全空数组创建出来的全空数组中的数据都是无限小的、无限接近于0但不是0,这方便我们数学上的一些操作
import numpy as np

data = np.zeros(shape=(3, 4))
print(data)

data1 = np.ones(shape=(3, 4))
print(data1)

data2 = np.empty(shape=(3, 4))
print(data2)

在这里插入图片描述

import numpy as np

sevens = np.full((3, 4), 7)
print(sevens)

在这里插入图片描述

import numpy as np

sevens = np.full((3, 4), 7, dtype=float)
print(sevens)

在这里插入图片描述

  • 有连续序列的数组 arange(从数值范围创建数组)
import numpy as np

data = np.arange(1, 10, 3) # arange(a, b, l)范围[a, b),步长l
print(data)

在这里插入图片描述

  • 有连续间隔的数组 linspace
    也称线性等分向量(linear space),在一个指定区间内按照指定的步长,将区间均等分,生成的是一个线段类型的数组。生成的线性间隔数据中,是有把区间的两端加进去的
import numpy as np

data = np.linspace(1, 10, 20)# 开始端1,结束端10,且分割成20个数据,生成线段
print(data)
print(data.ndim)

在这里插入图片描述

  • 随机数组
    创建随机数组的用途是初始化一个具有特定形状和大小的数组,其中所有元素都是随机生成的。在处理一些需要模拟随机数据的情况时,随机数组可以用作占位符或测试数据。
import numpy as np

data = np.random.rand(3, 4) # 3行4列
data1 = np.random.randint(1, 6, size=(3, 4)) # 数值在[1, 6)之间的随机整数,3行4列
print(data)
print(data1)

在这里插入图片描述

import numpy as np

random_arr = np.random.random((3, 4)) # [0.0, 1)
print(random_arr)

在这里插入图片描述

  • 改变数组形状
    因为数组中元素是没有改变的,所以重塑数组指定的尺寸大小是否和原本的尺寸大小一样,大一点和小一点都会报错,2行3列的数组,你可以把它改成为3行2列的数组 ,或者1行6列,改后尺寸必须一样,reshape本质就是原本数组中的元素按顺序展开来,然后依次填入新定义的尺寸中去.注意 reshape后面填的是元组数据类型
import numpy as np

arr1 = [1, 2, 3, 4]
arr2 = [5, 6, 7, 8]
arr3 = np.array([arr1, arr2])
print(arr3)
arr3 = arr3.reshape((4, 2))
print(arr3)

在这里插入图片描述

  • 数组转置
import numpy as np

arr1 = [1, 2, 3, 4]
arr2 = [5, 6, 7, 8]
arr3 = np.array([arr1, arr2])
print(arr3)
print(arr3.T)

在这里插入图片描述
其中改变数组形状arr.reshape((c, r))是重新安装规格填入元素,数组转置arr.T类似于矩阵转置

二、数组显示

  • 数组维度 ndim
  • 数组形状shape
  • 数组中元素个数
  • 数组的数据类型 dtype
    在这里插入图片描述
import numpy as np

arr1 = [1, 2, 3, 4]
arr2 = [5, 6, 7, 8]
arr3 = np.array([arr1, arr2])
print(arr3)
print(arr3.ndim)
print(arr3.shape)
print(arr3.size)
print(arr3.dtype)

在这里插入图片描述

三、数组运算

import numpy as np

arr1 = [1, 2, 3, 4]
arr2 = [5, 6, 7, 8]
arr3 = np.array(arr1)
arr4 = np.array(arr2)
print(arr3 + arr4)
print(arr4 - arr3)
print(arr3 * arr4)
print(arr4 / arr3)

在这里插入图片描述

四、数据统计

axis = 0 代表对横轴操作,也就是第0轴
axis = 1 代表对纵轴操作,也就是第1轴

  • 数组的中位数numpy.median(a, axis=None, out=None, overwrite_input=False, keepdims=<no value>)
    在这里插入图片描述
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(np.median(arr))
print(np.median(arr, axis=0))
print(np.median(arr, axis=1))

在这里插入图片描述

  • 计算数组中的元素沿指定轴的最值
numpy.amin(a, axis=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)
numpy.amax(a, axis=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)

在这里插入图片描述

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(np.amin(arr))
print(np.amin(arr, axis=0))
print(np.amin(arr, axis=1))

在这里插入图片描述

  • 数组的平均值numpy.mean(a, axis=None, dtype=None, out=None, keepdims=<no value>)
    在这里插入图片描述
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(np.mean(arr))
print(np.mean(arr, axis=0))
print(np.mean(arr, axis=1))

在这里插入图片描述

  • 数组中元素最大值与最小值的差(最大值 - 最小值)
numpy.ptp(a, axis=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(np.ptp(arr))
print(np.ptp(arr, axis=0))
print(np.ptp(arr, axis=1))

在这里插入图片描述

  • 小于特定值的观察值的百分比
numpy.percentile(a, q, axis)

在这里插入图片描述

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(np.percentile(arr, 50))
print(np.percentile(arr, 50, axis=0))
print(np.percentile(arr, 50, axis=1))

在这里插入图片描述

五、保存&加载

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 把arr数组保存到helloNumpy.npy文件中
np.save('helloNumpy.npy', arr)

# 加载helloNumpy.npy的内容到arr1中
arr1 = np.load('helloNumpy.npy')
print(arr1)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1798217.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【K8s】专题四(7):Kubernetes 控制器之 CronJob

以下内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01;如果对您有帮助&#xff0c;烦请点赞、关注、转发&#xff01;欢迎扫码关注个人公众号&#xff01; 目录 一、基本介绍 二、工作原理 三、相关特性 四、资源清单&#xff08;示例&#xff09; 五…

一图文看懂oracle数据库的安装与卸载

oracle数据库安装与卸载 1、卸载 对于已经安装过oracle数据库的主机&#xff0c;一般卸载起来比较麻烦&#xff0c;需要卸载大致四个地方&#xff0c;分别是关闭应用的服务、删除相关注册表、删除路径以及删除安装的位置&#xff0c;最后就需要重启主机。 前提&#xff0c;在…

从零开始:如何在直播应用中集成美颜SDK和美颜插件

本篇文章&#xff0c;小编将详细介绍如何从零开始&#xff0c;在直播应用中集成美颜SDK和美颜插件。 一、准备工作 确定需求 在开始集成美颜SDK之前&#xff0c;首先需要明确需求。考虑以下几个问题&#xff1a; 直播应用的目标用户是谁&#xff1f; 需要集成哪些美颜功能&…

图的相关种类

目录 数据类型 存储结构 邻接矩阵表示法 无向图 邻接矩阵表示 有向图 网 实现 邻接矩阵表示 存储结构 创建无向图 优点 缺点 邻接表法表示 表示无向图 表示有向图 存储结构 无向网 特点 十字链表与多重表 十字链表 存储结构 多重表 存储结构 数据类型 存…

IDEA使用阿里通义灵码插件

在这个AI火热的时代&#xff0c;纯手工写代码已经有点out了&#xff0c;使用AI插件可以帮我们快速写代码&#xff0c;起码能省去写那些简单、重复性的代码&#xff0c;大大提高编码效率&#xff0c;在这里我推荐使用阿里的通义灵码 注册安装 安装注册好后&#xff0c;打开我们…

室内外融合定位是如何做到成为定位领域的新宠

在信息化高速发展的今天&#xff0c;定位技术已成为人们生活和工作中不可或缺的一部分。随着物联网、智慧城市等领域的蓬勃发展&#xff0c;传统的单一定位方式已无法满足复杂多变的环境需求。在这样的背景下&#xff0c;室内外融合定位技术应运而生&#xff0c;以其独特的优势…

海南聚广众达电子商务咨询有限公司正规吗?

在数字经济的浪潮下&#xff0c;海南聚广众达电子商务咨询有限公司凭借其对抖音电商领域的深刻洞察和专业服务&#xff0c;成为引领行业新风尚的佼佼者。公司不仅具备丰富的电商运营经验&#xff0c;更有一支高效、创新的团队&#xff0c;致力于为品牌商家提供全方位的电商解决…

《数学学习与研究》投稿难度大吗?

《数学学习与研究》杂志的投稿难度相对适中。 一方面&#xff0c;它作为一本有一定影响力的数学专业期刊&#xff0c;对稿件的质量有一定要求。论文需要具备一定的创新性、科学性和逻辑性&#xff0c;研究内容要具有一定的价值和深度。 另一方面&#xff0c;与一些核心期刊相…

小红书笔记怎么发浏览量高?建议收藏

如何让自己的小红书笔记脱颖而出&#xff0c;赢得高浏览量&#xff1f;本文伯乐网络传媒将从内容编辑、提高曝光度方面&#xff0c;为你揭秘小红书笔记创作的技巧。 一、文字内容编辑技巧 1.优化笔记标题和封面 &#xff08;1&#xff09;标题关键词设置 一个好的标题决定了…

国密SSL证书与传统SSL证书的区别

随着网络技术的飞速发展&#xff0c;网络安全问题日益凸显。在保护数据传输安全、防止数据泄露和篡改方面&#xff0c;SSL证书扮演着至关重要的角色。国密SSL证书作为一种遵循国家标准技术规范并参考国际标准的SSL证书产品&#xff0c;近年来受到越来越多的关注。本文将详细介绍…

13. ESP32-HTTPClient(Arduino)

使用ESP32 Arduino框架的HTTPClient库进行HTTP请求 在ESP32开发里&#xff0c;网络通信是挺重要的一部分&#xff0c;你可能需要从服务器拿数据啊&#xff0c;或者把传感器数据发到云端什么的。不过别担心&#xff0c;ESP32 Arduino框架给我们提供了HTTPClient库&#xff0c;让…

电子纸在日化行业的全新应用

电子纸在日化行业的全新应用 项目背景 在一日化龙头企业他们的洗衣粉产线在AGV小车取料到运输到产品包装工序时&#xff0c;因为取料粉车无明显区分标识&#xff0c;但是产品系列有十大类。在未采用晨控电子纸之前现场采用一个转盘分为十个区域&#xff0c;取料工序上方会有一…

2024-06-06 问AI: 在深度学习中,什么是欧几里德长度?

文心一言 在深度学习中&#xff0c;欧几里德长度&#xff08;也称为欧几里得距离或欧氏距离&#xff09;是一个常用的概念&#xff0c;它衡量的是在多维空间中两个点之间的真实距离&#xff0c;或者说是向量的自然长度&#xff08;即该点到原点的距离&#xff09;。以下是关于…

企业该如何选择GPU云服务器配置?

无论是个人开发者还是企业用户&#xff0c;对于如何选购最佳的云服务器配置&#xff0c;都是比较头疼与纠结的。因为GPU云服务器的配置众多&#xff0c;各种组合有各自优势与用途&#xff0c;很难一下子做出决策。接下来&#xff0c;我们来简单分析下各配置应该怎么选购。 1、地…

Linux C语言:指针和指针变量

一、指针的作用 使程序简洁、紧凑、高效有效地表示复杂的数据结构动态分配内存能直接访问硬件能够方便的处理字符串得到多于一个的函数返回值 二、内存、地址和变量 1、内存地址 2、变量和地址 1&#xff09;变量用来在程序中保存数据 比如: int k 58; //声明一个int变…

Dockershim 与 Containerd:两种容器运行时的故事

在不断发展的容器化世界中&#xff0c;两个关键组件经常被混淆&#xff1a;Dockershim 和 containerd。虽然它们在管理容器方面都发挥着重要作用&#xff0c;但它们的用途却截然不同。本文深入探讨了它们的功能&#xff0c;深入探讨了 Dockershim 和 containerd 之间的区别。 揭…

【前端】响应式布局笔记——自适应布局

自适应布局 自适应布局是不同设备对应不同的html(局部自适应)&#xff0c;通过判断设备的类型或控制局部的变化。 1、获取设备是移动端还是pc端 // 获取设备的信息let userAgent navigator.userAgent.toLowerCase();// 使用正则表达式来判断类型let device /ipad|iphone|m…

读书笔记分享

1.绝大多数父母都是爱孩子的&#xff0c;可他们却不是称职的父母。世界上任何职业都要培训、考核、竞争上岗&#xff0c;唯有“父母”这个职业是没有这些程序&#xff0c;只要生了小孩&#xff0c;就是天经地义的父母。 2.由于自身工作特点&#xff0c;“白领”们的部分器官和…

【Java数据结构】详解Stack与Queue(四)

&#x1f512;文章目录&#xff1a; 1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; 2.用队列实现栈 3.用栈实现队列 4.栈和队列存放null 5.总结 1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友…

计算机网络-NAT配置与ACL

目录 一、ACL 1、ACL概述 2、ACL的作用 3、ACL的分类 4、ACL的配置格式 二、NAT 1、NAT概述 2、NAT分类 2.1 、 静态NAT 2.2 、 动态NAT 3、NAT的功能 4、NAT的工作原理 三、NAT配置 1、静态NAT配置 2、动态NAT配置 四、总结 一、ACL 1、ACL概述 ACL&#xff…