NumPy的数组对象:ndarray
目录
一:前言
1:数据的维度
2:数据维度的Python表示
3:NumPy的介绍
4:NumPy的引用
5:计算a²+b²例子,其中a和b都是一维数组
二:N维数组对象:ndarray
1:ndarray介绍
2:ndarry对象的属性
3:ndarray的元素类型
三:ndarray数组的创建方法
1:从Python中的列表、元组等类型创建ndarray数组
a:从列表类型创建
b:从元组类型创建
c:从列表和元组混合类型创建
2:使用NumPy中函数创建ndarray数组
np.arange(n)
np.ones(shape)
np.zeros(shape)
np.full(shape,val)
np.eye(n)
np.ones_like(a)
np.zeros_like(a)
np.full_like(a,val)
np.linspace()
np.concatenate()
3:从字节流(raw bytes)中创建ndarray数组
4:从文件中读取特定格式,创建ndarray数组
四:ndarray数组的变换
.reshape(shape)
.resize(shape)
.swapaxes(ax1,ax2)
.flatten()
.astype(new_type)
.tolist()
一:前言
1:数据的维度
维度:一组数据的组织形式
列表和数组:一组数据的有序结构
区别:组成列表的各元素的数据类型可以不同,而组成数组的各元素的数据类型得相同。
多维数据:由一维或或二维数据在新维度上扩展形成
高维数据:仅利用最基本的二元关系展示数据之间的复杂结构
2:数据维度的Python表示
一维数据:列表(元素有序)和集合(元素无序)类型
二维数据:列表类型
多维数据:列表类型
高维数据:字典类型或数据表示格式(JSON、XML和YAML格式)
3:NumPy的介绍
NumPy是一个开源的Python科学计算基础库,其拥有:
- 一个强大的N维数组对象ndarray
- 广播功能函数
- 整合C/C++/Fortran代码的工具
- 线性代数、傅里叶变换、随机数生成等功能
NumPy是SciPy、Pandas等数据处理或科学计算库的基础
4:NumPy的引用
import numpy as np
尽管别名可以省略或更改,但建议使用上述约定的别名,将来工作中会更方便。
以下皆以np为NumPy别名
5:计算a²+b²例子,其中a和b都是一维数组
传统方法:
a=[1,2,3]
b=[2,3,4]
c=[]
for i in range(len(a)):c.append(a[i]**2+b[i]**2)
print(c)
调用NumPy库来定义数组方法:
import numpy as np
a=np.array([1,2,3])
b=np.array([2,3,4])
c=a**2+b**2
print(c)
结果都是:
[5,13,25]
二:N维数组对象:ndarray
1:ndarray介绍
ndarray是一个多维数组对象,由两部分组成:
- 实际的数据
- 描述这些数据的元数据(数据维度、数据类型等)
ndarray一般要求所有元素类型相同(同质),数组下标从0开始
np.array() 生成一个ndarray数组
ndarray 在程序中的别名是:array
np.array() 输出成[]形式,元素由空格分割。
轴(axis):保存数据的维度
秩(rank):轴的数量
ndarray数组可以由非同质对象构成
非同质ndarray元素为对象类型
非同质ndarray对象无法有效发挥NumPy优势,尽量避免使用
示例:
2:ndarry对象的属性
属性 | 说明 |
---|---|
.ndim | 秩,即轴的数量或维度的数量 |
.shape | ndarray对象的尺度,对于矩阵,n行m列 |
.size | ndarray对象元素的个数,相当于.shape中n*m的值 |
.dtyoe | ndarry对象的元素类型 |
.itemsize | ndarry对象中每个元素的大小,以字节为单位 |
示例:
3:ndarray的元素类型
数据类型 | 说明 |
---|---|
bool | 布尔类型,True或False |
intc |
与C语言中的int类型一致,一般是int32或int64 |
intp | 用于索引的整数,与C语言中ssize_t一致,int32或int64 |
int8 | 字节长度的整数,取值:[-128,127] |
int16 | 16位长度的整数,取值:[-32768,32767] |
int32 | 32位长度的整数,取值:[-2^31,2^31-1] |
int64 | 64位长度的整数,取值:[-2^63,2^63-1] |
uint8 | 8位无符号整数,取值:[0,255] |
uint16 | 16位无符号整数,取值:[0,65535] |
uint32 | 32位无符号整数,取值:[0,2^32-1] |
uint64 | 64位无符号整数,取值:[0,2^64-1] |
float16 | 16位半精度浮点数:1位符号位,5位指数,10位尾数 |
float32 | 32位半精度浮点数:1位符号位,8位指数,23位尾数 |
float64 | 64位半精度浮点数:1位符号位,11位指数,52位尾数 |
complex64 | 复数类型,实部和虚部都是32位浮点数 |
complex128 | 复数类型,实部和虚部都是64位浮点数 |
实部(.real)+j虚部(.imag)
ndarray的元素类型
对比:Python语法仅支持整数、浮点数和复数3种类型
- 科学计算涉及数据较多,对存储和性能都有较高要求。
- 对元素类型精细定义,有助于NumPy库合理使用存储空间并优化性能。
- 对元素类型精细定义,有助于程序员对程序规模有合理评估。
三:ndarray数组的创建方法
1:从Python中的列表、元组等类型创建ndarray数组
a=np.array(list/tuple)
a=np.array(list/tuple,dtype=np.float32)
当np.array()不指定dtype时,NumPy将根据情况关联一个dtype类型。
a:从列表类型创建
b:从元组类型创建
c:从列表和元组混合类型创建
2:使用NumPy中函数创建ndarray数组
np.arange(n)
类似range()函数,返回ndarray类型,元素从0到n-1
np.ones(shape)
根据shape生成一个全1的数组,shape是元组类型
np.zeros(shape)
根据shape生成一个全0的数组,shape是元组类型
np.full(shape,val)
根据shape生成一个数组,每个元素值都是val
np.eye(n)
创建一个n维单位矩阵,主对角元为1,其余为0
np.ones_like(a)
根据数组a的形状生成一个元素全为1的数组
np.zeros_like(a)
根据数组a的形状生成一个元素全为0的数组
np.full_like(a,val)
根据数组a的形状生成一个元素全为val的数组
np.linspace()
根据起止数据等间距地填充数据,创建数组
np.concatenate()
将两个或多个数组合并成一个新的数组
3:从字节流(raw bytes)中创建ndarray数组
4:从文件中读取特定格式,创建ndarray数组
四:ndarray数组的变换
.reshape(shape)
不改变数组元素,返回一个shape形状的数组,原数组不变
.resize(shape)
与.reshape(shape)功能一致,但修改原数组
.swapaxes(ax1,ax2)
将数组n个维度中俩个维度进行调换,但不改变原数组
0,1分别指维度的序号,a原本是2行3列,通过调换后返回了一个3行2列的数组。
.flatten()
对数组进行降维,返回折叠后的一维数组,原数组不变
.astype(new_type)
该方法一定会创建新的数组,即使两个类型一致,也会对原始数据进行拷贝
.tolist()
实现数组向列表的转换,不改变原数组
NumPy的数组对象:ndarray相关推荐
- [转载] Numpy数组对象ndarray
参考链接: Numpy中的N维数组 ndarray Numpy数组对象ndarray 文章目录 Numpy数组对象ndarrayN维数组对象:ndarrayndarray对象的属性:ndarray的元 ...
- 《利用Python》进行数据分析:Numpy基础1 数组对象ndarray
#coding=utf-8__author__ = 'andy' import numpy as np '''数组.numpy数组.ndarray,基本都是一个东西'''#创建数组data1=[6,7 ...
- Numpy:数组对象(Ndarray)的属性
文章目录 数组的属性 内存布局属性 数据类型属性 其他属性 数组的属性 数组属性反映了数组本身固有的信息.通常,通过其属性访问数组允许您获取或者设置数组的内在属性,而无需创建新数组.属性是数组的核心部 ...
- Numpy:数组对象(Ndarray)的定义和创建
文章目录 数组定义 创建数组 1. 通过现有数据创建 2. 通过数值范围创建 3. 通过形状或值创建 数组定义 数组对象(Ndarray)是一个组合词,其中:N为数字,d(dimension)维度,a ...
- Numpy:数组(Ndarray)操作之数组的转换
文章目录 数组转换 数组转为其他类型 数组元素数据类型转换 数组的副本和视图 概念 方法 数组操作的内容较多,主要以对数组的转换,数组变化形状,对数组元素进行选择和操作,以及数组元素的增删改查,数组的 ...
- Numpy关于数组的基本使用
Numpy关于数组的基本使用 D系鼎溜已关注 2020.03.27 17:34:14字数 1,713阅读 165 附上参考链接 https://www.runoob.com/numpy/numpy-t ...
- B01_NumPy Ndarray对象(ndarray内容结构,参数,多维,最小维度,dtype参数)
NumPy Ndarray对象 NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引. ndarray 对象是用于存放同 ...
- python 数组 运算_python数据分析(二) python numpy--数组和矢量运算--数组对象
Numpy numpy是数值计算最重要的基础包,几乎所有的科学运算的模块底层所用的都是numpy数组. Numpy本身没有提供多么高级的数据分析功能,他所提供的功能主要是: 1.具有矢量算术运算(用数 ...
- numpy matrix 矩阵对象
https://docs.scipy.org/doc/numpy/reference/generated/numpy.matrix.html#numpy.matrix 1.简介 Matrix类型继承于 ...
最新文章
- 在坚持了15年后,我毅然决定离开 Linux,投入 Mac 的怀抱
- 交叉验证分析每一折(fold of Kfold)验证数据的评估指标并绘制综合ROC曲线
- phpstudy安装imagick扩展库怎么装
- DevExpress右键菜单使用 zt
- Linux gdb 破解软件密码
- Spring MVC-06循序渐进之Converter和Formatter
- linux查文件名称唯美,第二章、Linux常用命令
- DP专辑之最长公共子序列及其变形
- python读取文件夹下所有图像 预处理_Tensorflow之tif图像文件预处理
- String.prototype 几个简洁的字符处理函数 (转)
- Android内存泄漏问题(一)
- 设计模式的Java 8 Lambda表达式–策略设计模式
- 测试环境安装配置obproxy(社区版)
- sdr 软件_SDR软件定义无线电是什么?不仅仅是大频谱
- python实现第三方验证码获取_Python 原生爬虫教程
- 【IoT】 产品设计:结构设计之ABS塑料表面处理工艺
- 用Python实现GB与BIG5码的转换
- JDBC连接MySQL数据库出现的错误及解决方法整理
- 深度学习目标检测---使用labelimg对自己的数据集进行标记(windows系统)
- 开源项目zheng运行环境