python-数据分析(6-numpy)

2023-11-09

Numpy

6 Numpy

6.1 Numpy介绍与安装

Numpy是什么?
Numpy(Numerical Python)是目前Python数值计算中最为重要的基础包。大多数计算包都提供了基于Numpy的科学函数功能,将Numpy的数组对象作为数据交换的通用语。

Numpy特点

  • 提供高效多维数组
  • 提供了基于数组的便捷算术操作以及广播机制
  • 对数据进行快速的矩阵计算
  • 对硬盘中数组数据进行读写操作

Numpy安装
直接在dos命令行中pip install numpy 即可。

6.2 Numpy基本操作

创建N-维数组对象
生成数组最简单的方式就是使用array函数。array函数接收任意的序列型对象,生成一个新的包含传递数据的Numpy数组

  • numpy.array(object)
import numpy as np
li = [1,2,3,4]
arr = np.array(li)
arr   
------------------------------------
array([1, 2, 3, 4])
  • numpy.arange([start,] stop[, step,])
import numpy as np
arr = np.arange(1,5)
#另一种方法也可以写成如下,结果一样
#arr = np.array(range(1,5))
arr
---------------
array([1, 2, 3, 4])

注意

  • ndarray数组是一个通用的多维同类数据容器,意味着数组里面每一个元素均为相同类型。
6.3 Numpy基本操作数组的数据类型

Numpy数据类型

类型 类型代码 描述
int8,uint8 i1,u1 有符号和无符号的8数位整数
int16,uint16 i2,u2 有符号和无符号的16数位整数
int32,uint32 i4,u4 有符号和无符号的32数位整数
int64,uint64 i8,u8 有符号和无符号的64数位整数
float16 f2 半精度浮点数
float64 f8 标准双精度浮点数
bool ? 布尔值,存储True或False
string_ S ASCII字符串类型,eg:‘S10’
unicode_ U Unicode类型,eg:‘U10’

查看数组数据类型

  • arr.dtype # 查看数组的数据类型
import numpy as np
arr = np.arange(1,5)
arr.dtype
-------------------------
dtype('int32')  

注意

  • np.array()会自动推断生成数组的数据类型

指定数组的数据类型

  • numpy.array(object,dtype=None)
    • 创建数组时通过dtype直接指定
import numpy as np
arr = np.array([1,2,3],dtype='U')
#arr
#arr的输出结果  array(['1', '2', '3'], dtype='<U1') 
arr.dtype
------------------------
dtype('<U1')
  • arr.astype(dtype) # 修改数组数据类型
import numpy as np
arr = np.array([1,2,3])
arr = arr.astype(np.float32)
arr.dtype
-------------------------------
dtype('float32')
6.4 数组形状

arr.ndim
查看数组的维度,返回值为整数
arr.shape
查看数组的,返回值为元组

import numpy as np
arr = np.array([1,2,3,4])
arr.ndim
----------------
1
arr.shape
-----------------
(4,)

N-维数组对象
在这里插入图片描述

import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
arr

在这里插入图片描述

“”“
三维
0轴:块
1轴:行
2轴:高
shape(0,1,2)
”“”
import numpy as np
arr = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
arr.shape
------------------------
(2, 2, 3)   

重塑数组

一维转多维

  • arr.reshape(shape,order=“C”)
    • shape为数组重塑形状
    • order表示重塑方向
      • C顺序(行方向)重塑
      • F顺序(列方向)重塑
import numpy as np
arr = np.arange(6)
arr1 = arr.reshape(2,3)     #reshape 不改变原有对象,需重赋予一个变量
print(arr)
print(arr1)
-----------------------
[0 1 2 3 4 5]
[[0 1 2]
 [3 4 5]]
arr1.reshape(3,-1)    #形状维度可以为-1,表示维度通过数据进行判断
-------------------------
array([[0, 1],
       [2, 3],
       [4, 5]])
#重塑三维
np.arange(24).reshape(2,3,4)
-----------------------------------------------
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])

多维转一维

  • arr.flatten()
  • arr.ravel()
array3 = array.ravel()
array3
------------------------
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
array2 = array.flatten()
---------------------------------
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
#将二维转为一维   不推荐 举个例子
array=np.arange(12).reshape(3,4)
array1 = array.reshape(array.shape[0]*array.shape[1])
array1
--------------------------------
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])

数组转置与换轴

  • arr.transpose() # 转置
  • arr.T # 转置
  • arr.swapaxes() # 换轴 (需要传参,如二维:1,0)

创建数组其他函数

函数名 描述
array 将输入数据转换为ndarray数组,自动推断数据类型,默认复制所有输入数据
asarray 将输入数据转换为ndarray数组,但输入数据已经是ndarray则不再复制
arange python内建函数range的数组版,返回一个数组
zeros 根据给定形状和数据类型生成全0数组
ones 根据给定形状和数据类型生成全1数组
empty 根据给定形状和数据类型生成一个没有初始化数值的空数组
full 根据给定形状和数据类型生成指定数值的数组
import numpy as np
np.zeros(3)   #创建一维的全为0的数组
---------------------------------------------
array([0., 0., 0.])
np.zeros((2,3))   #创建二维的 全为0的数组
----------------------------------
array([[0., 0., 0.],
       [0., 0., 0.]])

数组的拷贝
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python-数据分析(6-numpy) 的相关文章

  • 如何使用 .ui 文件创建小部件?

    我想在 MainWindow 内创建一个小部件 该小部件从使用 QtDesigner 创建的文件中获取其设计 我创建的 ui 文件是test ui 我有一个继承自的 MainWindow 实例QMainWindow这将创建一个堆叠小部件里面
  • 如何在Python中测量时间?

    我想启动我的程序 测量程序启动的时间 然后等待几秒钟 按下按钮 K RIGHT 并测量按下按钮的时间 我正在使用 Pygame 来注册 Keydown 但在我下面的代码中它没有注册我的 Keydown 我在这里做错了什么 start tim
  • 仅选择多索引 DataFrame 的一个索引

    我正在尝试仅使用多索引 DataFrame 中的一个索引创建一个新的 DataFrame A B C first second bar one 0 895717 0 410835 1 413681 two 0 805244 0 813850
  • 如何使Python格式的浮点数具有一定数量的有效数字?

    我希望我的 Python 2 4 3 输出数字具有特定的格式 具体来说 如果数字是有效数字 6 位有效数字 则仅输出 6 位有效数字 A 显示了 Python 如何编写浮点数 B 显示了我希望它们如何书写 我怎样才能让Python以这种方式
  • 使用正则表达式的 Strip() 函数

    我正在尝试重新创建strip 使用正则表达式的Python函数 这是最后一个练习题用 Python 自动化处理无聊的事情 https automatetheboringstuff com chapter7 这是我的代码 import re
  • Google Cloud Functions 中的 Python

    Google Cloud Functions 可以使用 sklearn pandas 等包处理 python 吗 如果是这样 有人可以向我指出如何做到这一点的资源方向 我已经搜索了一段时间 似乎这是不可能的 我找到的只是将基本 python
  • Pandas datetools模块错误

    我正在尝试从 pandas datetools 调用模块 但收到错误消息 指出 mofule 对象没有我所调用的名称的属性 想知道是否有人可以阐明这个问题 下面是我尝试使用的代码 import blpapi import pandas as
  • 来自 ANTLR 解析树的 Python AST?

    我找到了一个ANTLR4 Python3 语法 https github com bkiers python3 parser 但它会生成一个解析树 该树通常有许多无用的节点 我正在寻找一个已知的包来从该解析树获取 Python AST 这样
  • scikit-learn 使用的 CART 算法是确定性的吗?

    我从 scikit learn 网站获得以下代码 import numpy as np from sklearn datasets import load iris from sklearn model selection import c
  • 制作一个可以接受各种形状参数的函数

    Q1 Numpy 函数可以采用不同形状的参数 例如 np sum V 可以采用以下两个之一并返回具有不同形状的输出 x1 np array 1 3 1 x2 np array 1 2 3 4 5 6 7 8 2 我正在制作自己的函数 如下所
  • ctypes c_char_p 的不同行为?

    我对不同版本的 python 的这种行为感到困惑 不明白为什么 Python 2 7 5 default Aug 25 2013 00 04 04 GCC 4 2 1 Compatible Apple LLVM 5 0 clang 500
  • 无法在 VS Code 中导入

    我是 python 新手 一直在使用 VS code 现在我正在研究汤普森采样问题 需要 numpy 和 matplotlib 我已经导入了这两个库 但 VS code 给出了无法导入的错误 我知道我必须使用 PIP 进行安装 并且我已经看
  • 根据另一个参数的值添加参数

    根据输入之一 我想初始化某些对象 这些对象的值将是其余参数的默认值 因此 即使在 parser parse args 之前 我也需要参数之一的值 我如何使用 python argparse 模块来实现这一点 所有选项都将作为一个命令行给出
  • 避免 Python 3 的多处理队列中的竞争条件

    我正在尝试找到大约 61 亿 自定义 物品的最大重量 并且我想通过并行处理来完成此操作 对于我的特定应用程序 有更好的算法不需要我迭代超过 61 亿个项目 但解释它们的教科书超出了我的能力范围 我的老板希望在 4 天内完成此任务 我认为我公
  • PyQt4 QPalette 不工作

    btn QtGui QPushButton Button self palettes btn palette palettes setColor btn backgroundRole QtCore Qt green btn setPalet
  • Jinja2 为 Google App Engine 模型返回“None”字符串

    Google App Engine 模型 如下所示 from google appengine ext db import Model class M Model name db StringProperty 然后在从 Django 视图调
  • 使用 numpy 数组计算累积最小值

    我想计算 累积最小值 数组 基本上 数组到每个索引的最小值 例如 import numpy as np nums np array 5 3 4 2 1 1 2 0 cumulative min np zeros nums size dtyp
  • 如何获取当前的 IPython / Jupyter Notebook 名称

    我试图在运行 IPython 笔记本时获取当前的笔记本名称 我知道我可以在笔记本顶部看到它 我在追求什么 currentNotebook IPython foo bar notebookname 我需要在变量中获取名称 添加到以前的答案 要
  • 你能在 Python 语法中添加新的语句吗?

    您可以添加新的语句 例如print raise with 到 Python 的语法 说 允许 mystatement Something Or new if True print example 没那么多 如果你should 而是如果可能的
  • 缩放插图中不同的 x 和 y 比例,matplotlib

    我正在尝试使用 matplotlib 制作插图 目前我有类似最后一个答案的内容如何缩放图像的一部分并插入到 matplotlib 中的同一图中 https stackoverflow com questions 13583153 how t

随机推荐

  • LeetCode高频算法刷题记录4

    文章目录 1 二叉树的最近公共祖先 中等 1 1 题目描述 1 2 解题思路 1 3 代码实现 2 全排列 中等 2 1 题目描述 2 2 解题思路 2 3 代码实现 3 相交链表 简单 3 1 题目描述 3 2 解题思路 3 3 代码实现
  • Ubuntu18.04 下载与安装

    阿里云里面有很多镜像 https opsx alibaba com mirror Ubuntu各个版本的镜像下载地址 http mirrors melbourne co uk ubuntu releases 最新百度经验 Ubuntu19
  • 纯HTML+CSS网页设计——林允儿(可做网页课程作业)

    作品介绍 网页为作者一次课程作业 效果个人觉得还行 其中抛弃了导航栏的使用 主要每次都导航栏 写烦了 采用的是图谱的形式 主要也是因为最近在学 页面主要有6个 有三个是较重复的 所以主要页面是四个 具体的直接看图吧 作品展示 首页 首页背景
  • Python全面解读2018电影票房市场

    作者 法纳斯特 来源 法纳斯得 双11已经过去 双12即将来临 离2018年的结束也就2个月不到 还记得年初立下的flag吗 完成了多少 相信很多人和我一样 抱头痛哭 本次利用猫眼电影 实现对2018年的电影大数据进行分析 01 网页分析
  • FeatureToggle

    概述 为了控制功能开启与关闭 减少代码中的if else繁琐的逻辑判断 主要通过spring的aop及java的注解实现 目前主要包含6个部分的代码 支持内存存储和部分策略 源码git 稍后放源码 功能 单个开关的配置 开关组的配置 通过组
  • MongoDB总结

    MongoDB的官方文档基本是how to do的介绍 而关于how it worked却少之又少 本人也刚买了 MongoDB TheDefinitive Guide 的影印版 还没来得及看 本文原作者将其书中一些关于MongoDB内部现
  • 线性代数学习之初等矩阵和矩阵的可逆性

    求解矩阵的逆 接着https www cnblogs com webor2006 p 14280299 html继续往下学习 在上一次中学习了线性系统以及它的求解 在之前https www cnblogs com webor2006 p 1
  • Synchronized和ReentrantLock的区别

    1 Synchronized是一个关键字 ReentrantLock是一个类 2 Synchronized可以用来修饰普通方法 静态方法和代码块 而ReentrantLock只能用于代码块 3 Synchronized会自动加锁与释放锁 R
  • VBA读取其他Excel内容

    VBA读取其他Excel内容 AccessDataBaseEngine安装 Excel内容读取 采用Microsoft于2020 8 11新出的 AccessDataBaseEngine Microsoft Access 2016 数据库引
  • 关于隐式实例化,显示实例化,显示具体化的理解.

    对于模板函数 编译器会通过对这个模板含数的引用生成一个含数的实例 这通常叫隐式实例化 例如下面的函数模板 template lt class T gt void Swap T a T b 而相对于隐式实例化 则可以自己编写显示实例化来说明
  • 怎么查看linux库是使用哪个版本的编译器编译的

    由于对同样的库的源码 有的使用4 1 2编译器编译的 有的是4 1 1等等 结果导致有时候存放的时候忘记了写版本信息 导致要重新编译 解决方法 objdump s section comment your program 查看程序编译器版本
  • i.mx287学习笔记8-buildroot编译mplayer

    上面是我的微信和QQ群 欢迎新朋友的加入 1 开始 嵌入式linux几种播放视频的方法 1 交叉编译mplayer smplayer等软件 移植到嵌入式平台 这种方法在嵌入式平台不能控制窗口位置 不能很好的嵌入到自己程序的窗口中去 但是实现
  • Python列表切片中的None

    None起到的是增加维度的作用 示例如下 import numpy as np z np ones 3 3 3 print z shape 3 3 3 print z None None shape 3 1 1 3 3 print z No
  • java高级用法_java 高级用法整理

    一 retentionpolicy class vs runtime区别 java5 增加了注解的功能 其中retentionpolicy注解的生命周期 提供了三种选择策略 source class和runtime三种选择 source 源
  • mac ping: sendto: Host is down

    mac ping 内网机子提示 host is down Request timeout for icmp seq 0 但是其他小伙伴ping是没问题的 mac和小伙伴的电脑网段 子网掩码 路由器 DNS一致 查询后是因为mac使用了vmw
  • 手机微信连不上wifi服务器怎么回事,微信连不上wifi怎么办?

    大家经常会在家中使用微信进行聊天 那么如果微信连不上wifi了怎么办 方法步骤 1 微信是大家最常用的聊天工具之一了 几乎每天都在使用 大家在家里使用的话经常会连接wifi 但有时候会遇到微信连不上wifi的问题 却又不知道怎么解决 接下来
  • 全角字符unicode码对应表

    Uni GB Uni GB Uni GB Uni GB Uni GB 00A4 A1E8 00A7 A1EC 00A8 A1A7 00B0 A1E3 00B1 A1C0 00B7 A1A4 00D7 A1C1 00E0 A8A4 00E1
  • 对于Transformer 模型----可以从哪些地方进行创新和改进

    Vit 全称 Vision Transformer 是Transformer在CV方向的应用 是NLP与CV的相互联系 相互促进 相互影响 自Transformer应用进计算机视觉领域以来 与其相结合的新模型大都表现出了不错的效果 但是 这
  • 微信小程序:排行榜页面模板

    文章目录 1 前言 2 模板代码 3 结语 1 前言 在开发一款背单词的微信小程序时 为了加强用户的体验感 刺激用户积极学习 小程序中需要有排行榜的模块 通过打卡天数来排名 让用户有攀比学习的心里 具体的页面截图如下 2 模板代码 wxml
  • python-数据分析(6-numpy)

    Numpy 6 Numpy 6 1 Numpy介绍与安装 Numpy是什么 Numpy Numerical Python 是目前Python数值计算中最为重要的基础包 大多数计算包都提供了基于Numpy的科学函数功能 将Numpy的数组对象