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