目录

一:前言

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科学计算基础库,其拥有:

  1. 一个强大的N维数组对象ndarray
  2. 广播功能函数
  3. 整合C/C++/Fortran代码的工具
  4. 线性代数、傅里叶变换、随机数生成等功能

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是一个多维数组对象,由两部分组成:

  1. 实际的数据
  2. 描述这些数据的元数据(数据维度、数据类型等)

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种类型

  1. 科学计算涉及数据较多,对存储和性能都有较高要求。
  2. 对元素类型精细定义,有助于NumPy库合理使用存储空间并优化性能。
  3. 对元素类型精细定义,有助于程序员对程序规模有合理评估。

三: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相关推荐

  1. [转载] Numpy数组对象ndarray

    参考链接: Numpy中的N维数组 ndarray Numpy数组对象ndarray 文章目录 Numpy数组对象ndarrayN维数组对象:ndarrayndarray对象的属性:ndarray的元 ...

  2. 《利用Python》进行数据分析:Numpy基础1 数组对象ndarray

    #coding=utf-8__author__ = 'andy' import numpy as np '''数组.numpy数组.ndarray,基本都是一个东西'''#创建数组data1=[6,7 ...

  3. Numpy:数组对象(Ndarray)的属性

    文章目录 数组的属性 内存布局属性 数据类型属性 其他属性 数组的属性 数组属性反映了数组本身固有的信息.通常,通过其属性访问数组允许您获取或者设置数组的内在属性,而无需创建新数组.属性是数组的核心部 ...

  4. Numpy:数组对象(Ndarray)的定义和创建

    文章目录 数组定义 创建数组 1. 通过现有数据创建 2. 通过数值范围创建 3. 通过形状或值创建 数组定义 数组对象(Ndarray)是一个组合词,其中:N为数字,d(dimension)维度,a ...

  5. Numpy:数组(Ndarray)操作之数组的转换

    文章目录 数组转换 数组转为其他类型 数组元素数据类型转换 数组的副本和视图 概念 方法 数组操作的内容较多,主要以对数组的转换,数组变化形状,对数组元素进行选择和操作,以及数组元素的增删改查,数组的 ...

  6. Numpy关于数组的基本使用

    Numpy关于数组的基本使用 D系鼎溜已关注 2020.03.27 17:34:14字数 1,713阅读 165 附上参考链接 https://www.runoob.com/numpy/numpy-t ...

  7. B01_NumPy Ndarray对象(ndarray内容结构,参数,多维,最小维度,dtype参数)

    NumPy Ndarray对象 NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引. ndarray 对象是用于存放同 ...

  8. python 数组 运算_python数据分析(二) python numpy--数组和矢量运算--数组对象

    Numpy numpy是数值计算最重要的基础包,几乎所有的科学运算的模块底层所用的都是numpy数组. Numpy本身没有提供多么高级的数据分析功能,他所提供的功能主要是: 1.具有矢量算术运算(用数 ...

  9. numpy matrix 矩阵对象

    https://docs.scipy.org/doc/numpy/reference/generated/numpy.matrix.html#numpy.matrix 1.简介 Matrix类型继承于 ...

最新文章

  1. 在坚持了15年后,我毅然决定离开 Linux,投入 Mac 的怀抱
  2. 交叉验证分析每一折(fold of Kfold)验证数据的评估指标并绘制综合ROC曲线
  3. phpstudy安装imagick扩展库怎么装
  4. DevExpress右键菜单使用 zt
  5. Linux gdb 破解软件密码
  6. Spring MVC-06循序渐进之Converter和Formatter
  7. linux查文件名称唯美,第二章、Linux常用命令
  8. DP专辑之最长公共子序列及其变形
  9. python读取文件夹下所有图像 预处理_Tensorflow之tif图像文件预处理
  10. String.prototype 几个简洁的字符处理函数 (转)
  11. Android内存泄漏问题(一)
  12. 设计模式的Java 8 Lambda表达式–策略设计模式
  13. 测试环境安装配置obproxy(社区版)
  14. sdr 软件_SDR软件定义无线电是什么?不仅仅是大频谱
  15. python实现第三方验证码获取_Python 原生爬虫教程
  16. 【IoT】 产品设计:结构设计之ABS塑料表面处理工艺
  17. 用Python实现GB与BIG5码的转换
  18. JDBC连接MySQL数据库出现的错误及解决方法整理
  19. 深度学习目标检测---使用labelimg对自己的数据集进行标记(windows系统)
  20. 开源项目zheng运行环境

热门文章

  1. 转给计算机专业的准大学生!
  2. Sqoop简介以及使用
  3. 20211030.剪绳子
  4. Linux日志文件系统(EXT4、XFS、JFS)及性能分析
  5. JUC基础(一): 什么是JUC(JUC概述)
  6. 标准日本语初级上-------(1~12课)
  7. 如何人体穴位自我按摩
  8. elasticsearch-starter
  9. Python基本编程题
  10. cython大白话基础教程