【数据分析】NumPy

文章目录

    • @[toc]
      • ndarray的创建
        • np.array()方法
        • np.arange()方法
        • np.zeros()方法
        • np.ones()方法
        • np.full()方法
        • np.eye()方法
        • np.random模块
          • np.random.random()方法
          • np.random.randint()方法
          • np.random.choice()方法
          • np.random.shuffle()方法
      • ndarray的属性
        • ndarray.dtype
        • ndarray.ndim
        • ndarray.shape
        • ndarray.size
        • ndarray.itemsize
      • 修改ndarray的维度
        • ndarray.reshape()方法
        • ndarray.resize()方法
        • ndarray.flatten()方法
      • ndarray与数的运算
      • ndarray与ndarray的运算
      • ndarray索引与切片
        • ndarray索引
        • ndarray切片
      • ndarray的转置
        • ndarray.T
        • ndarray.transpose()方法
      • 布尔索引

因上努力

个人主页:丷从心·

系列专栏:数据分析

学习指南:Python学习指南

果上随缘


ndarray的创建

np.array()方法
import numpy as np

arr = np.array([1, 2, 3])

print(arr)
print(type(arr))
[1 2 3]
<class 'numpy.ndarray'>
np.arange()方法
import numpy as np

arr = np.arange(6)

print(arr)
[0 1 2 3 4 5]
np.zeros()方法
import numpy as np

arr = np.zeros((2, 2))

print(arr)
[[0. 0.]
 [0. 0.]]
np.ones()方法
import numpy as np

arr = np.ones((2, 2))

print(arr)
[[1. 1.]
 [1. 1.]]
np.full()方法
import numpy as np

arr = np.full((2, 2), 2)

print(arr)
[[2 2]
 [2 2]]
np.eye()方法
import numpy as np

arr = np.eye(3)

print(arr)
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
np.random模块
np.random.random()方法
import numpy as np

arr = np.random.random((2, 2))

print(arr)
[[0.32149432 0.01896196]
 [0.62318947 0.24221268]]
np.random.randint()方法
import numpy as np

arr = np.random.randint(0, 10, size=(2, 2))

print(arr)
[[6 7]
 [2 3]]
np.random.choice()方法
  • choice()方法用于从数组或列表中随机采样
import numpy as np

arr = np.arange(6)

print(np.random.choice(arr, size=(2, 3)))
[[2 1 0]
 [0 2 5]]
np.random.shuffle()方法
  • shuffle()方法用于将数组随机打乱
import numpy as np

arr = np.arange(6)
np.random.shuffle(arr)

print(arr)
[1 0 5 4 3 2]

ndarray的属性

ndarray.dtype
  • ndarray.dtype表示数组元素的类型
import numpy as np

arr = np.random.random((2, 2))

print(arr.dtype)
float64
ndarray.ndim
  • ndarray.ndim表示数组的维度
import numpy as np

arr = np.random.random((2, 2))

print(arr.ndim)
2
ndarray.shape
  • ndarray.shape表示数组的各轴长度
import numpy as np

arr = np.random.random((2, 2))

print(arr.shape)
(2, 2)
ndarray.size
  • ndarray.size表示数组的元素总数量
import numpy as np

arr = np.random.random((2, 2))

print(arr.size)
4
ndarray.itemsize
  • ndarray.itemsize表示数组每个元素占的字节数
import numpy as np

arr = np.random.random((2, 2))

print(arr.itemsize)
8

修改ndarray的维度

ndarray.reshape()方法
  • reshape()方法不会修改数组本身,只返回修改后的结果
import numpy as np

arr_1 = np.arange(6)

arr_1.reshape((2, 3))
print(arr_1)

arr_2 = arr_1.reshape((2, 3))
print(arr_2)
[0 1 2 3 4 5]
[[0 1 2]
 [3 4 5]]
ndarray.resize()方法
  • resize()方法修改数组本身,没有返回值
import numpy as np

arr = np.arange(6)
arr.resize((2, 3))

print(arr)
[[0 1 2]
 [3 4 5]]
ndarray.flatten()方法
  • flatten()方法用于将多维数组转变为一维数组
import numpy as np

arr = np.arange(6)
arr.resize((2, 3))

print(arr.flatten())
[0 1 2 3 4 5]

ndarray与数的运算

import numpy as np

arr = np.random.random((3, 4))
arr *= 10

print(arr.round(2))
[[6.61 5.87 3.59 9.65]
 [9.91 5.98 2.7  5.72]
 [2.76 3.68 2.4  2.79]]
  • round()方法用于修改保留小数的位数

ndarray与ndarray的运算

import numpy as np

arr_1 = np.array([[1, 2, 3],
                  [4, 5, 6],
                  [7, 8, 9]])

arr_2 = np.array([[1, 2, 3],
                  [4, 5, 6],
                  [7, 8, 9]])

print(arr_1 * arr_2)
[[ 1  4  9]
 [16 25 36]
 [49 64 81]]
import numpy as np

arr_1 = np.random.randint(0, 10, size=(3, 4))  # 3 行 4 列
arr_2 = np.random.randint(0, 10, size=(3, 1))  # 3 行 1 列

arr_3 = arr_1 - arr_2

print(arr_1)
print(arr_2)
print(arr_3)
[[9 5 1 6]
 [4 4 9 5]
 [9 0 7 3]]
[[3]
 [7]
 [8]]
[[ 6  2 -2  3]
 [-3 -3  2 -2]
 [ 1 -8 -1 -5]]
import numpy as np

arr_1 = np.random.randint(0, 10, size=(3, 4))  # 3 行 4 列
arr_2 = np.random.randint(0, 10, size=(1, 4))  # 1 行 4 列

arr_3 = arr_1 - arr_2

print(arr_1)
print(arr_2)
print(arr_3)
[[0 1 1 8]
 [3 3 6 3]
 [4 9 8 6]]
[[3 5 9 0]]
[[-3 -4 -8  8]
 [ 0 -2 -3  3]
 [ 1  4 -1  6]]

ndarray索引与切片

ndarray索引
import numpy as np

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

print(arr[0])  # 打印第 0 行的元素
print(arr[0, 0])  # 打印第 0 行第 0 列的元素
[1 2 3]
1
ndarray切片
import numpy as np

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

print(arr[:2])  # 打印第 0 ~ 1 行的元素
print(arr[:2, :2])  # 打印第 0 ~ 1 行的第 0 ~ 1 列的元素
[[1 2 3]
 [4 5 6]]
[[1 2]
 [4 5]]

ndarray的转置

ndarray.T
  • ndarray.T不会修改数组本身,只返回转置后的结果
import numpy as np

arr = np.arange(6).reshape((2, 3))

print(arr)
print(arr.T)
[[0 1 2]
 [3 4 5]]
[[0 3]
 [1 4]
 [2 5]]
ndarray.transpose()方法
  • transpose()方法修改数组本身,并返回转置后的结果
import numpy as np

arr = np.arange(6).reshape((2, 3))

print(arr)
print(arr.transpose())
[[0 1 2]
 [3 4 5]]
[[0 3]
 [1 4]
 [2 5]]

布尔索引

  • 布尔索引是指将一个布尔数组作为数组索引,返回的数据是布尔数组中Ture对应位置的值
import numpy as np

arr_1 = np.arange(0, 12).reshape((3, 4))
arr_2 = (arr_1 < 3) | (arr_1 > 8)

print(arr_1)
print(arr_2)

print(arr_1[arr_2])
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[[ True  True  True False]
 [False False False False]
 [False  True  True  True]]
[ 0  1  2  9 10 11]

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

初识BootStrap

目录 前言: 1.Bootstrap的特点包括&#xff1a; 1.1响应式设计&#xff1a; 1.2组件丰富&#xff1a; 1.3易于定制&#xff1a; 1.4兼容性良好&#xff1a; 1.5强大的社区支持&#xff1a; 1.6一致的样式和布局&#xff1a; 1.7 插件和扩展性 2.初识Ajax: 2.1同步请求…

Linux——(关于权限常见的3个问题)

文章目录 1.修改文件或者目录的拥有者和所属组1.1chown指令1.2chgrp指令 2.常见的权限三个问题2.1对应一个目录&#xff0c;如果要进入&#xff0c;需要什么权限&#xff1f;2.2为什么我们创建的文件默认权限不是7772.2.1关于Linux下的权限掩码 2.3文件能否被删除取决于什么2.3…

Paddle OCR v4 微调训练文字识别SVTRNet模型实践

文字识别步骤参考&#xff1a;https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/recognition.md 微调步骤参考:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7.1/doc/doc_ch/finetune.md 训练必要性 原始模型标点符号和括号容易识别不到 数据…

【kettle004】kettle访问本地MySQL数据库并处理数据至execl文件

一直以来想写下基于kettle的系列文章&#xff0c;作为较火的数据ETL工具&#xff0c;也是日常项目开发中常用的一款工具&#xff0c;最近刚好挤时间梳理、总结下这块儿的知识体系。 熟悉、梳理、总结下MySQL关系数据库相关知识体系 3.欢迎批评指正&#xff0c;跪谢一键三连&…

大模型微调:技术迭代与实践指南

在人工智能领域&#xff0c;大模型&#xff08;LLM&#xff09;的微调是一个关键过程&#xff0c;它使模型能够适应特定的任务和数据集。微调是深度学习中用于改进预训练模型性能的重要技术。通过在特定任务的数据集上继续训练&#xff0c;模型的权重被更新以更好地适应该任务。…

揭秘工业大模型:从人工智能小白到技术先锋

工业大模型的五个基本问题 信息化时代&#xff0c;数字化转型成为企业提升营运效率、应对经营风险和提升核心竞争力的重要途径。在此过程中&#xff0c;数据作为一种客观存在的资源&#xff0c;所产生的价值日益凸显。党的十九届四中全会从国家治理体系和治理能力现代化的高度将…

详解Qt绘图机制

Qt框架以其强大的图形界面功能著称&#xff0c;其中绘图机制是构建丰富视觉效果的关键。本文将详细介绍Qt中的绘图机制&#xff0c;包括绘图基础、绘图设备、绘图工具及高级特性&#xff0c;并通过实战C代码示例&#xff0c;带你领略Qt绘图的魅力。 绘图基础 Qt的绘图操作主要…

vs2019 - release版中_DEBUG宏生效的问题

文章目录 vs2019 - release版中_DEBUG宏生效的问题概述笔记总结END vs2019 - release版中_DEBUG宏生效的问题 概述 在加固程序&#xff0c;需要去掉PE的字符串表中和逻辑相关的字符串。 编译成release版后&#xff0c;用IDA看&#xff0c;还是发现有debug版才有的字符串。 那…

gitee关联picgo设置自己的typora_图床

一&#xff1a;去gitee官网创建仓库&#xff1a;typora_图床 1.百度搜索关键字&#xff1a;gitee&#xff0c;进入官网 2.进入gitee登录或者注册自己的账号 3.进入主页后&#xff0c;点击右上方 4.点击新建仓库 5.设置仓库名&#xff1a;typora_图床 6.点击5的创建&#xff0…

<计算机网络自顶向下> Internet Protocol(未完成)

互联网中的网络层 IP数据报格式 ver: 四个比特的版本号&#xff08;IPV4 0100, IPV6 0110&#xff09; headlen&#xff1a;head的长度&#xff08;头部长度字段&#xff08;IHL&#xff09;指定了头部的长度&#xff0c;以32位字&#xff08;4字节&#xff09;为单位计算。这…

echarts实现水滴图

使用echarts实现水滴图 引入依赖&#xff0c;echarts-liquidfill3兼容echarts5; 安装依赖 "echarts": "^5.4.3","echarts-liquidfill": "^3.1.0",npm install echarts-liquidfill3.1.0 -S实现的效果图 构建一个水滴图的页面 <tem…

基于Spring Boot的商务安全邮件收发系统设计与实现

基于Spring Boot的商务安全邮件收发系统设计与实现 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 已发送效果图&#xff0c;用户可以对已发送信息…

4.28总结

对部分代码进行了修改&#xff0c;将一些代码封装成方法&#xff0c;实现了头像功能&#xff0c;创建一个本地字节输入流 fileinputSteam 对象&#xff0c;构造方法中绑定读取的数据源&#xff0c;创建一个socket对象&#xff0c;构造方法中绑定服务器的IP地址和端口号使用sock…

Kafka(十二)Streams

目录 Streams1 什么式是流式处理2 流式处理的相关概念2.1 拓扑2.2 时间2.2.1 输入时间2.2.2 输出时间 2.3 状态2.4 流和表2.5 时间窗口2.5.1 测试时间窗口 2.6 处理保证 3 流式处理设计模式3.1 单事件处理3.2 使用本地状态3.3 多阶段处理和重分区3.4 使用外部查找&#xff1a;流…

阿里云操作日记

昨天买了一个超级便宜的阿里云服务器&#xff0c;2核2G&#xff0c;3M固定带宽&#xff0c;40G ESSD Entry云盘&#xff0c;搭载一个简单的系统&#xff0c;就想到了docker轻量级&#xff0c;易于管理 其实docker很好用&#xff0c;第一步就是安装docker 一、docker安装与端口…

Python快速入门1数据类型(需要具有编程基础)

数据类型&#xff1a; Python 3.0版本中常见的数据类型有六种&#xff1a; 不可变数据类型可变数据类型Number&#xff08;数字&#xff09;List&#xff08;列表&#xff09;String&#xff08;字符串&#xff09;Dictionary&#xff08;字典&#xff09;Tuple&#xff08;元…

python学习笔记----循环语句(四)

一、while循环 为什么学习循环语句 循环在程序中同判断一样&#xff0c;也是广泛存在的&#xff0c;是非常多功能实现的基础&#xff1a; 1.1 while循环语法 while 条件表达式:# 循环体# 执行代码这里&#xff0c;“条件表达式”是每次循环开始前都会评估的表达式。如果条件…

张大哥笔记:我付钱了,我就是大爷?

很抱歉用这个当做标题&#xff0c;来给大家分享一些电商的故事&#xff01;大家好&#xff0c;我是张大哥&#xff0c;今天聊聊在电商路上遇到过的奇葩买家&#xff1f; 比如最近我在做PDD的时候&#xff0c;就会遇到很多莫名其妙的sha子&#xff0c;咱是知识份子&#xff0c;肯…

漏洞扫扫工具合集

综合类扫描工具 AWVS Acunetix一款商业的Web漏洞扫描程序&#xff0c;它可以检查Web应用程序中的漏洞&#xff0c;如SQL注入、跨站脚本攻击、身份验证页上的弱口令长度等。它拥有一个操作方便的图形用户界面&#xff0c;并且能够创建专业级的Web站点安全审核报告。新版本集成了…

LeetCode1017题:负二进制转换(原创)

【题目描述】 给你一个整数 n &#xff0c;以二进制字符串的形式返回该整数的 负二进制&#xff08;base -2&#xff09;表示。注意&#xff0c;除非字符串就是 "0"&#xff0c;否则返回的字符串中不能含有前导零。 示例 1&#xff1a; 输入&#xff1a;n 2 输出&…