numpy数组的创建和属性转换

youandme 2019-07-01

numpy数组的创建和属性转换

一、数据与numpy数组的创建

1、 python数组的创建

python中的固定类型数组:

python中提供了几种将数组存储在有效的、固定类型的数据缓存中的选项。内置的数组(array)模块可以创建按统一类型的密集数组:

numpy数组的创建和属性转换

这里的“i”表示的是一个数据类型码,表示数据为整型。

更实用的是ndarray数组对象,Python的数组对象提供了数组类型的有效存储,而Numpy为该数据加上了高效的操作。稍后将会介绍这些操作,这里先集中展示创建Numpy数组的方法:

2、 Numpy数组的创建

从python列表创建数组:

numpy数组的创建和属性转换

  • 创建整数型

numpy数组的创建和属性转换

  • 指定类型创建数组

numpy数组的创建和属性转换

  • 根据内容,自动创建对应数据类型

numpy数组的创建和属性转换

创建np数组时需要强调元素类型的一致。如果类型不同则会自动向上转换。

2.1dtype参数进行强制类型转换或类型指定

numpy数组的创建和属性转换

2.2生成嵌套数组

手动创建嵌套数组

numpy数组的创建和属性转换

使用公式嵌套数组

numpy数组的创建和属性转换

3、11中创建ndarray数组的高效创建方法

面对大型数组,用Numpy数组时,用Numpy内置方法从头创建数组时一种高效的方法,以下是几个示例:

3.1 创建一个元素都为0 的n * m 的多(2)维数组

np.zeros((维度,行数,列数),dtype = "指定类型(float32/int32/str)")

  • 创建一个10列元素类型为浮点型的数组,在仅指定一个参数时,创建的表示一行,指定列数,默认为浮点型。

numpy数组的创建和属性转换

  • 创建一个3行4列元素类型为整数型的数组, 仅指定两个参数时,表示的是行数和列数。

numpy数组的创建和属性转换

  • 创建一个2维3行4列元素类型为整数型的数组, 指定三个参数时,表示的是维度,行数和列数。

numpy数组的创建和属性转换

3.2 创建一个元素都为1的n*m的多(3)维数组

np.ones((维度,行数,列数),dtype = "指定类型(float32/int32/str)")

numpy数组的创建和属性转换

  • 传维度参数的时候,放在一个容器中,可以是元组,也可以是列表

numpy数组的创建和属性转换

3.3创建一个的整数型数组,数组的值是一个线性序列。

np.arange(start[真包含], end[假包含], step)

  • 创建一个从0开始30结束,步长为3的数组

numpy数组的创建和属性转换

  • 创建一个从1开始30结束的数组

numpy数组的创建和属性转换

  • 创建一个长度到10结束的数组

numpy数组的创建和属性转换

3.4创建一个50个元素的数组,这50个数均匀地分配到1~10

np.linspace(start, stop, 平均分成的分数)

numpy数组的创建和属性转换

3.5 创建一个在0-1之间随机分布的由随机数组成的数组

np.random.random((维度,行数, 列数))

  • 创建一个3列的随机数数组

numpy数组的创建和属性转换

  • 创建一个3行3列的随机数数组

numpy数组的创建和属性转换

  • 创建一个3维3行3列的数组

numpy数组的创建和属性转换

其他生成随机数的方法

  • 创建一个服从标准正态分布的数组

np.random.randn(维度,行数,列数)

  • 创建均匀分布[0,1)上的数组

np.random.rand(维度,行数,列数)

3.6 创建一个正态分布的随机数数组

np.random.normal(均值, 方差, (维度,行数, 列数))

  • 创建一个均值为0,方差为1,3维3行3列的随机数数组

numpy数组的创建和属性转换

3.7创建一个服从设置区间的随机数整数型的数组

np.random.randint(start, stop, (维度,行数, 列数))

  • 创建从0开始10结束,3维3行3列的整数型数组

numpy数组的创建和属性转换

3.8 创建一个对角线元素都为1,其他位置元素都为0的单位矩阵

np.eye(行数,列数,dype=’元素类型(默认为浮点型)’)

  • 创建一个4列的单位矩阵,如果仅指定一个参数,默认为列数,行数会默认为是列数。

numpy数组的创建和属性转换

  • 创建一个4行3列的单位矩阵

numpy数组的创建和属性转换

3.9创建一个由m*n维未初始化的数组,数组的值是内存空间中的任意值

np.empty(n)

numpy数组的创建和属性转换

3.10 创建一个指定元素的对角矩阵

Np.diag(n)

  • 创建对角元素为1,2,3,4的对角矩阵

numpy数组的创建和属性转换

3.11创建一个指定行列,和指定内容的数组

Np.full((维度,行数,列数),指定值(可以是一个数组,也可以是一个列表或嵌套列表))

  • 创建一个3维3行5列,值全部为3.14的数组

numpy数组的创建和属性转换

二、数组的基本操作

1、查看Nddaray属性

数组的属性:

  • 数组的维度:ndim
  • 数组每个维度的大小:shape
  • 数组的总大小(元素的总个数):size
  • 数组类型:dtype
  • 数组元素字节大小:itemsize;nbytes

现在我们定义三个数组, 一维数组, 二维数组, 三维数组,为了确保大家都能生成一样的数组, 我们先设置随机数种子。

Np.random.seed可以使生成随机数时可以生成一样的随机数

numpy数组的创建和属性转换

1.1查看数组的形状

numpy数组的创建和属性转换

1.2查看数组的维度

numpy数组的创建和属性转换

1.3 查看数组的总大小

numpy数组的创建和属性转换

1.4查看数组的数据类型

numpy数组的创建和属性转换

1.5查看数组中每个元素的大小(所占用内存的大小)

numpy数组的创建和属性转换

1.6查看数组的总大小(占用内存的大小)

numpy数组的创建和属性转换

1.7对数组进行转置

numpy数组的创建和属性转换

1.8其他查看属性的方法

Ndarray.flags

有关数组的内存布局的信息。

Ndarray.shape

数组维数组。

Ndarray.ndim

数组维数,在Python世界中,维度的数量被称为rank。

Ndarray.data

Python缓冲区对象指向数组的数据的开始。

Ndarray.size

数组中的元素总个数。

Ndarray.itemsize

一个数组元素的长度(以字节为单位)。

Ndarray.dtype

数组元素的数据类型。

Ndarray.T

数组的转置。

2.Numpy数据类型以及类型转换

Numpy中的数组比 Python 原生中的数组(只支持整数类型与浮点类型)强大的一点就是它支持更多的数据类型。

2.1 numpy基本数据类型

Numpy常见的基本数据类型如下:

数据类型

描述

bool_

布尔(True或False),存储为一个字节

int_

默认整数类型(与C long相同;通常为int64或int32)

intc

与C int(通常为int32或int64)相同

intp

用于索引的整数(与C ssize_t相同;通常为int32或int64)

int8

字节(-128到127)

int16

整数(-32768到32767)

int32

整数(-2147483648至2147483647)

int64

整数(-9223372036854775808至9223372036854775807)

uint8

无符号整数(0到255)

uint16

无符号整数(0到65535)

uint32

无符号整数(0至4294967295)

uint64

无符号整数(0至18446744073709551615)

float_

float64的简写。

float16

半精度浮点:符号位,5位指数,10位尾数

float32

单精度浮点:符号位,8位指数,23位尾数

float64

双精度浮点:符号位,11位指数,52位尾数

complex_

complex128的简写。

complex64

复数,由两个32位浮点(实数和虚数分量)

complex128

复数,由两个64位浮点(实数和虚数分量)

虽然有这么多的数据类型,但是我们平时用的时候仅需要知道(int,bool,float,complex,str)这几种就可以了,暂时不需要去记这么多。

这些类型都可以在创建ndarray的时候通过dtype来制定

numpy数组的创建和属性转换

2.2数据类型的转换

数组直接数据类型的转换首选是.astype()方法,或者使用类型本身作为函数。

numpy数组的创建和属性转换

相关推荐

solarLan / 0评论 2020-09-17