【数据分析】NumPy

news2024/9/22 1:17:07

文章目录

    • @[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]

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

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

相关文章

用数据检验函数正确性,matlab2C

数据存取格式 filename1 g.txt; fid1 fopen(filename1,w); for i 1 : length(g)for j1:size(g,2)if(j1)fprintf(fid1,{%.16f,,g(i,j)); elseif(j>1&&j<151)fprintf(fid1,%.16f,,g(i,j)); elsefprintf(fid1,%.16f},\n,g(i,j));endend%fprintf(fid1,\n…

【小梦C嘎嘎——启航篇】C++特殊类设计

【小梦C嘎嘎——启航篇】C特殊类设计&#x1f60e; 前言&#x1f64c;1.请设计一个类&#xff0c;该类不能被继承2.请设计一个类&#xff0c;只能在堆上创建对象3.请设计一个类&#xff0c;只能在栈上创建对象4.请设计一个类&#xff0c;该类不能发生拷贝5.请设计一个类&#x…

uniapp真机调试无法调用之前页面的方法

在uniapp通过getCurrentPages&#xff08;&#xff09;页面栈调用之前页面方法&#xff0c;h5可生效但app真机调试找不到方法 let pages getCurrentPages()let beforePage pages[pages.length - 3]beforePage.refresh() //真机调试refresh为undefined解决&#xff1a; 后面…

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

一直以来想写下基于kettle的系列文章&#xff0c;作为较火的数据ETL工具&#xff0c;也是日常项目开发中常用的一款工具&#xff0c;最近刚好挤时间梳理、总结下这块儿的知识体系。 熟悉、梳理、总结下MySQL关系数据库相关知识体系 kettle访问MySQL数据库并处理数据至execl文件…

Python AI库 Pandas的常见操作的扩展知识

Python AI库 Pandas的常见操作的扩展知识 本文默认读者具备以下技能&#xff1a; 熟悉python基础知识&#xff0c;vscode或其它编辑工具 熟悉表格文件的基本操作 具备自主扩展学习能力 前文中对Pandas的数据结构以及基础操作做了介绍,本文中会在前文的基础上,对常见的操作进…

MATLAB实现果蝇算法优化BP神经网络预测分类(FOA-BP)

果蝇算法&#xff08;Fruit Fly Optimization Algorithm, FFOA&#xff09;是一种启发式优化算法&#xff0c;受果蝇觅食行为的启发。将其应用于优化BP神经网络&#xff0c;主要是为了寻找BP神经网络中的最佳权重和偏置值。以下是一个基本的流程&#xff1a; 初始化&#xff1a…

【C语言】贪吃蛇详解(附源码)

一、贪吃蛇实现效果 【C语言】贪吃蛇&#xff08;控制台&#xff09; 二、源码 &#x1f388;&#x1f388;&#x1f388;Snake 残风也想永存/C语言项目 - 码云 - 开源中国 (gitee.com)&#x1f388;&#x1f388;&#x1f388; 三、如何使用C语言去实现一个贪吃蛇&#xff1f…

1438.绝对差不超过限制的最长连续子数组

显然我们是需要同时维护当前的最大值和最小值,这就需要两个单调队列dq_down(递减排列)一个维护最大值,dq_up(递增排列)一个维护最小值,同样这个是使用我们第二个模板 [left, i]. 只有当left等于某一个dq.front()的时候,才把它pop_front().这就使得对应相同的元素,我们只需要保…

ruoyi-nbcio-plus基于vue3的flowable修正加签与跳转的前端问题

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; h…

IF 27.5|GWAS+图位克隆法,揭秘水稻调控籽粒性状的关键基因

水稻是全球种植最广泛的作物 拥有超过12万个品种 提高粮食品质是当代水稻育种的首要目标 在现代水稻育种中&#xff0c;不同类型的水稻已经被培育出来&#xff0c;比如食用稻和酿酒稻。这些不同类型的水稻具备不同的籽粒特性&#xff0c;其中包括育种过程中选择的不同等位基因…

应用实战|只需几步,即可享有外卖订餐小程序

本示例是一个简单的外卖查看店铺点菜的外卖微信小程序&#xff0c;小程序后端服务使用了MemFire Cloud&#xff0c;其中使用到的MemFire Cloud功能包括&#xff1a; 其中使用到的MemFire Cloud功能包括&#xff1a; 云数据库&#xff1a;存储外卖微信小程序所有数据表的信息。…

OpenHarmony语言基础类库【@ohos.xml (xml解析与生成)】

将XML文本转换为JavaScript对象、以及XML文件生成和解析的一系列接口。 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import xml from ohos.xml; XmlSerializer XmlSerializer接口…

可审批可审计追溯的单网络导出文件方案,了解一下

在物理隔离状态下&#xff0c;单网络导出文件是一个重要的安全需求&#xff0c;特别是在处理敏感数据时。在这种环境下&#xff0c;数据导出需要采取特殊的安全措施&#xff0c;以确保数据传输的安全性和合规性。需要考虑以下因素&#xff1a; 安全性&#xff1a;确保传输过程加…

代码随想录算法训练营第12天:滑动窗口和前缀和

代码随想录算法训练营第12天&#xff1a;滑动窗口和前缀和 这里我参考了西法的博客&#xff0c; 467. 环绕字符串中唯一的子字符串(中等)795. 区间子数组个数(中等)904. 水果成篮(中等)992. K 个不同整数的子数组&#xff08;困难&#xff09;1109. 航班预订统计(中等) 前四…

netsh int ipv4 show dynamicport tcp动态端口port设置

netsh int ipv4 show dynamicport tcp netsh int ipv4 set dynamicport tcp start4000 num10000

测试下目录显示否

目录 1、安装docker 2、搜索镜像 3、拉取镜像 4、查看镜像列表 5、运行镜像 6、查看运行容器列表 8、命令行连接数据库 1、安装docker 2、搜索镜像 docker search mysql 3、拉取镜像 docker pull mysql 4、查看镜像列表 docker images 5、运行镜像 docker run -p …

#ESP32S3R8N8建立工程(VSCODE)点亮LED

1.参考文档 【立创ESP32S3R8N8】IDF入门手册 - 飞书云文档 (feishu.cn)https://lceda001.feishu.cn/wiki/GOIlwwfbIi1SC3k8594cDeFVn8g 2.建立工程 3.运行效果 4.更改配置 5.插播 之前配置的环境是有问题的&#xff0c;就算有自动检测也要仔细检查&#xff0c;必须严格按照以…

【推荐】程序员的免费羊毛!!!

还剩下最后两天了&#xff0c;最后这两天抽奖命中率特别高&#xff0c;基本中奖99.99% 有大量日历、数码电子产品。 点击链接参与「通义灵码 体验 AI 编码&#xff0c;开 AI 盲盒」 https://developer.aliyun.com/topic/lingma/activities/202403?taskCode14508&recor…

Windows系统中下Oracle 19C数据库超级详细安装、设置教程(自己电脑上安装Oracle学习,保姆级教学,亲测有效)

Oracle 官方提供了一个基于 Java 技术的图形界面安装工具&#xff1a;Oracle Universal Installer&#xff08;Oracle 通用安装器&#xff09;简称 OUI&#xff0c;利用它可以完成在不同操作系统平台上&#xff08;Windows、Linux、UNIX&#xff09;的、不同类型的、不同版本的…

vb.net编写简易计算器(DataTable )

如下图所示界面&#xff1a; 部分代码&#xff1a; Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click TextBox1.Text "" End Sub Private Sub Button19_Click(sender As Object, e As EventArgs) Handles Button19.Cli…