numpy数组—创建及数组类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Jakob_Hu/article/details/88876708


Numpy的全名是numerical Python,是高性能的科学计算和数据分析基础包,是很多高级工具的构建基础。
numpy模块的基本功能能够总结为 :

1.ndarray,具有向量计算和复杂广播能力的多维数组;快速而且节省空间。
2.对数组数据进行快速运算,有专门的内置函数,无需编写循环。
3.读写磁盘数据,操作映射文件。
4.线性代数、随机数生成和傅里叶变换等重要功能。
5.能够集成C、C++、Fortan等语言编写的代码。

ndarray创建

numpy最重要的特点就是N维数组对象,该对象是快速灵活的大数据容器。ndarray中要求所有元素必须是同一种数据类型。且每个数组都有一个shape(表示维度)和一个dtype(说明数据类型)。

1)创建ndarray数组—array方法

创建数组使用array()方法,传入的参数可以是任意一种序列对象,

import numpy as np

data = [6, 7.5, 8, 0, 1]
arr1 = np.array(data)    # 得到:array([6, 7.5, 8, 0, 1])

嵌套序列会被转为一个多维数组,

data2 = [[1, 2, 3, 4], [5, 6, 7, 8]]
arr2 = np.array(data2)

#得到的是 array([[1,2,3,4],
#               [5,6,7,8]])  二维数组

数组对象相关的属性有,

属性 说明 举例
dtype 返回数据类型 arr1.dtype 返回 ‘float64’
ndim 返回维度 arr1.ndim 返回 1,即一维
shape 返回各个维度的大小 arr2.shape 返回 (2,4)

除了 array方法外,zerosones方法可以创建指定长度或者形状的全0或全1数组。empty方法可以创建一个没有任何具体值的数组,用这些方法创建一维数组传入一个整数,多维数组时,传入的是元组
生成一维的长度为10的数组,
在这里插入图片描述
生成二维数组,行列分别是3和6,
在这里插入图片描述
三维数组,
在这里插入图片描述
其中,empty方法返回的并不是全部为0的数组,因为存在安全问题,多数情况下返回的是垃圾值。
在Python中 range方法返回的是一个迭代器对象,numpy模块中 arange方法与之相似,返回的是一个array数组(该数组是一维数组)。
在这里插入图片描述

2)创建数组方法总结

在这里插入图片描述

a = [1, 2]
np.asarray(a)        # 返回 array([1, 2])

a = np.array([1, 2])    # 此时a已经是一个numpy的数组
np.asarray(a) is a      # 返回True

a = np.array([1, 2], dtype=np.float32)
np.asarray(a, dtype=np.float32) is a        # 返回 True
np.asarray(a, dtype=np.float64) is a        # 改变了dtype属性,False

np.arange(-1*np.pi, np.pi, np.pi/100)        #创建一个范围是[-π,π]每个元素之间差值为 π/100的数组

np.eye(2, dtype=int)
#返回 array([[1, 0],
#	         [0, 1]])
np.eye(3, k=1)            #参数k值可以调节的
#返回 array([[ 0.,  1.,  0.],
#           [ 0.,  0.,  1.],
#           [ 0.,  0.,  0.]])

np.identity(3)
#返回 array([[ 1., 0., 0.], 
#           [ 0., 1., 0.], 
#           [ 0., 0., 1.]])

eye方法中,k参数为1的对角线的位置偏离度,0居中,1向上偏离1,2偏离2,以此类推,-1向下偏离。值绝对值过大就偏离出去了,整个矩阵就全是0了。

区分:
eye方法和identity方法都是生成单位矩阵的方法,第一个参数n传入的都是维度,不同的是:

扫描二维码关注公众号,回复: 6189890 查看本文章

1.identity方法只能创建方阵;而eye方法能够创建矩阵,因为官方文档中这两个方法参数的说明为,
在这里插入图片描述
在这里插入图片描述
2.eye方法的对角线可以设置偏离度;而identity方法偏离度为0(即一般的对角线)。
在这里插入图片描述

ndarray数据类型

ndarray的数据可以使用 dtype参数进行设置,dtype的命名方式:类型名+各元素的位长。标准的浮点类型(编译语言的double)和Python的float占用8字节(64位)长度,在numpy中就记为“float64“。
在这里插入图片描述
在这里插入图片描述

1)astype方法

类型之间使用 astype方法进行转换,
在这里插入图片描述
如果是数值型字符串,也是可以使用 astype方法转换为字符串类型的,
在这里插入图片描述
即使使用astype方法时候没写成 np.float32而是写成了Python中的浮点数类型 float,也不会报错,numpy会进行自动转换。但是如果转换失败,比如将字母构成的字符串转换为float类,此时会报出 TypeError异常。

2)astype方法传参形式

  1. 使用1)中的方式传递参数
  2. 另一个array的dtype**,
    在这里插入图片描述
    在这里插入图片描述
  3. 简写的类型代码
    >

猜你喜欢

转载自blog.csdn.net/Jakob_Hu/article/details/88876708