python中的数组模块numpy(一)(适用物联网数据可视化及数据分析)

时间:2024-10-09 09:24:14

一、创建数组对象array,认识数组的格式

array函数的格式:np.array(object,dtype,ndmin) 

以下是示例代码:

# coding:utf-8
import numpy as np
d1=[1.1,2.1,3.1]
d2=(1,2,3,4)
d3=[['a','b'],['c','d'],['e','f']]
print(d1)
print(d2)
print(d3)
print("以上是数据的原始状态,以下是转化成数组对象后的输出:")
s1=np.array(d1)
s2=np.array(d2)
s3=np.array(d3)
print(s1)    #输出了空格
print(s2)
print(s3)   #回车加空格

 让我们观察一下数组格式,输出如下:

——闲着没事大家可以type()一下s1、s2、s3看看是不是ndarray数组类型

print(type(s1)) #表示输出的是ndarray数组类型

二、类型比较


~常见的列表、元组通过numpy模块转数组后,它的类型、数组的数据类型dtype对象

说明:在创建数组时,NumPy会为新建的数组推断出一个合适的数据类型,并保存在dtype中,当序列中有整数和浮点数时,NumPy会把数组的dtype定义为浮点数据类型。

print(s1.dtype)
print(s2.dtype)
print(s3.dtype)

输出如下:

 

——如果指定了dtype类型,就会自然转化成这个类型,如整型转浮点型:

s4=np.array(d2,dtype='float64')
print(s4.dtype)

有一些是能指定转化的有一些则不能,如果你要将字符类型转换成浮点型就不可以,有空多尝试。 

三、arange函数:创建一维等差数组

底层完整格式:np.arange([start, ],stop, [step, ],dtype)

[ ]中括号的意思是,可有可没有,如:

warray=np.arange(10,dtype="int32")
print(warray)
# 默认结束为10,开始为0,间隔为1的等差数列

以下是精简中文版解释:

   语法:np.arange(起始数字,结束数字,差值,dtype="类型") 

# coding:utf-8
# 创建一维等差数组
import numpy as np
warray=np.arange(1,10,1,dtype="int32")
print(warray)

 输出如下:

四、专门创建数组的linspace、logsapace函数

 1.linspace函数:创建等差数列数组。

 底层完整格式:np.linspace(start,stop,num,endpoint, retstep=Falsed,type=None) 

start:序列的起始值。
stop:序列的结束值。如果 endpoint 为 True,该值会包含在生成的数组中;如果为 False,则不包含,endpoint默认为True。
num:要生成的样本数,默认为 50。
retstep:如果为 True,返回 (samples, step),其中 step 是样本之间的间隔。默认为 False。
dtype:输出数组的数据类型。如果没有给出,则从其他输入参数推断数据类型。
axis:在 0 的情况下,返回的数组是 1-D 的,否则返回的数组的形状是 (num,) + shape(start)。

以下是精简中文版解释:

   语法:np.linspace(起始数字,结束数字,生成的样本数)

# coding:utf-8
import numpy as np
# linspace函数
w=np.linspace(0,11,5,endpoint=False,dtype='int32')
#开始,结束,间隔数量
print(w)

输出如下:

 

2.logsapce函数:创建等比数列数组。

 底层完整格式:np.logspace(start,stop,num,endpoint=True,base=10.0, dtype=None))

        说明:logspace的参数中,start,stop代表的是基数的幂,默认基数base为10,第三个参数为生成元素个数。

y=np.logspace(1,5,5,base=2,endpoint=True,dtype='int32')
print(y)

开始值是2^1       即2 

结束值是2^5       即32

2~32中有五个元素等比数列就是这样式滴:2^1 2^2 2^3 2^4 2^5

以下是精简中文版解释:

   语法:np.logspace(起始数字的n次幂,结束数字的n次幂,生成个数,base=n)  

 

3.zeros函数:创建指定长度或形状的全0数组 。

 底层完整格式:np.zeros(shape,dtype=float, order='C’)

以下是精简中文版解释:

  • shape:数组的形状,可以是一个整数或一个表示形状的元组。
  • dtype:数组的数据类型,可选参数,默认为float64
  • order:数组元素在内存中的排列顺序,可选参数,可以是’C’(按行排列)或’F’(按列排列)。

   语法:np.zeros(整数/元组,dtype=类型, order='C/F’)

如果是元组描述一个形状:np.zeros((row,column),dtype='int32')

示例代码:

z1=np.zeros((4,3),dtype='int32')
z2=np.zeros((3,4),dtype='int32')
print('z1\n',z1,'\nz2:\n',z2)

输出结果:

 

4.ones函数:创建指定长度或形状的全1数组

 底层完整格式:np.ones(shape, dtype=None, order='C')

 语法同zeros函数一样。

示例代码:

o1=np.ones((4,3),dtype='int32')
o2=np.ones((3,4),dtype='int32')
print('o1\n',o1,'\no2:\n',o2)

输出结果:

 

5.diag函数:创建一个对角阵。

 底层完整格式:np.diag(v, k=0)

以下是精简中文版解释:

        v:必选,列表、元组、数组,对角线元素;

        k:可选,默认为0,表示对角线位置;

示例代码:

# 列表
d1=np.diag([1,2,3,4,5])
# 元组
d2=np.diag((1,2,3,4,5))
# 数组
s=np.array([1,2,3,4,5])
d3=np.diag(s)

print('d1:',d1,'\n')
print('d2:',d2,'\n')
print('d3:',d3,'\n')

 输出结果:

此外,同理使用eye函数可创建一个对角线为1其他位置全为0的矩阵。


        当这篇博客的篇章缓缓落下帷幕,惊喜却并未停止。我为大家精心准备了福利,快来参与吧!扫描二维码,开启幸运之旅,抽取丰厚好礼。愿这份小小的惊喜,为你的生活增添一抹别样的光彩,期待与你再次相遇在这充满奇妙的文字世界。