Numpy入门之数据类型及数组创建

Numpy入门之数据类型及数组创建

下面我将通过一系列例子来介绍Numpy的数据类型及numpy数组的创建。

数据类型

基础数据类型

Python 原生的数据类型相对较少, bool、int、float、str等。这在不需要关心数据在计算机中表示的所有方式的应用中是方便的。然而,对于科学计算,通常需要更多的控制。为了加以区分 numpy 在这些类型名称末尾都加了“_”。
Numpy入门之数据类型及数组创建_第1张图片

#numpy数据内型
a = np.dtype('b1')
print(a.type) 

输出:dtype(‘int32’)
这里定义的a代表的是numpy数组的一种数据类型。数组的数据类型可在数组定义时给出,如果不给,也会自动识别数据类型。

关于几个"type"区分

以下我将对astype(),dtype(),type()三个函数进行举例区别。
下面展示一些 内联代码片

#dtype()
b = np.array([1,2,3])
b.dtype

输出:dtype(‘int32’)
dtype()函数返回数组内部元素类型,因为数组的元素的类型必须是一致的,这一点与列表List不同。

#dtype()
a = np.dtype('b1') 
print(a.type) 

输出:
type()函数返回参数变量的类型,这一点是区分dtype(),因为dtype()是内部数据类型的。

#astype()
str1 = np.array(["1.25","1.1","7.56"],dtype = np.string_)
str1.astype(np.float32)

输出:array([1.25, 1.1 , 7.56], dtype=float32)
astype函数可以转变Numpy数组的数据类型,但也不是任意转换的,数字如整型、浮点型是可以转换的,如果字符串数组都是数字,也可以转化成浮点型数组。

数组创建

array()和asarray()

#array()
np.array([[1,2,4],[2,6,9]])

输出:
array([[1, 2, 4],
[2, 6, 9]])
array()函数除了可以将列表类型转化成Numpy数组,还可以将Dataframe类型转化成numpy数组。

#asarray()
np.asarray([[1,2,4],[2,6,9]])

输出:
array([[1, 2, 4],
[2, 6, 9]])
asarray()函数与array()函数在功能上并无区别。

利用arange()函数,linspace()函数,random().rand()等创建数组

np.arange(0,10,1)#(初值,终值,间距),终值取不到,即取值区间是一个左闭右开的区间
np.linspace(0,10,5)#(初值,终值,取间距数)
np.random.rand(2,3)#(2,3)是生成随机数组的维度

输出
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
array([ 0. , 2.5, 5. , 7.5, 10. ])
array([[0.94251097, 0.0792962 , 0.0886468 ],
[0.37565836, 0.55458168, 0.45675535]])
以上几个numpy数组生成函数常在python画图里面用到,用于横坐标的刻画。

从矩阵维度角度来生成特殊numpy数组

np.ones((3,4),dtype = np.float32) #生成全1数组(矩阵)
np.zeros((3,4),dtype = np.int) #生成零数组(矩阵)
np.eye(4,dtype = np.int)  #生成单位数组(矩阵)
np.diag([1,2,3])   #生成对角数组(矩阵)

输出
array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]], dtype=float32)
array([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
array([[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]])
array([[1, 0, 0],
[0, 2, 0],
[0, 0, 3]])

以上就是基本的数组创建,也是最为常用的数组创建函数。

你可能感兴趣的:(python,numpy,数据分析,矩阵,线性代数)