您的位置:

python数组序列,Python中的序列

本文目录一览:

为什么python数组不用qp=[[0]*4]*4

因为没有这个数组类型。

Python中的数组类型有六种,有list可变的动态列表,tuple不可变的列表,array数组是可变的,存储相同类型的数值,不能存储对象,字符串序列str数组,bytes对象数组,bytearray对象数组,所以没有qp这个数组类型,所以才不能用qp等于这个数组。

python定义一个单字节类型数组

Python中没有数组的数据结构,但列表很像数组。

和字符串一样,字节类型也是不可变序列,而字节数组就是可变版本的字节,它们的关系就相当于list与tuple。

字节(字节数组)是二进制数据组成的序列,其中每个元素由8bit二进制即1byte亦即2位十六进制数亦亦即0~255组成,字节是计算机的语言,字符串是人类语言,它们之间通过编码表形成一一对应的关系。

怎样用python将数组里的数从高到低排序

1、首先我们定义一个列表输入一串大小不一的数字。

2、可以用sort()方法对定义的列表排序,注意,sort只是对列表排序,它没有返回一个值。

3、输入print列表名即可得到排序后的列表数据。

4、倒序可以用这个reverse方法,把元素位置倒转过来。

5、然后再次print列表名,这样就会得到倒转顺序之后的列表数据。

5、如图两相对比即实现了从高到低和从低到高排序。

python自带及pandas、numpy数据结构(一)

1.python自带数据结构:序列(如list)、映射(如字典)、集合(set)。

以下只介绍序列中的list:

创建list:

list1 = []

list1 = [1,2,3,4,5,6,7,8,9] #逗号隔开

list2 = [[1,2],[3,4],[5,6],[7,8]] #list2长度(len(list2))为2,list2[0] = [1,2]

liststring = list(“thisisalist”) #只用于创建字符串列表

索引list:

e = list1[0] #下标从零开始,用中括号

分片list:

es = list1[0:3]

es = list1[0:9:2] #步长在第二个冒号后

list拼接(list1.append(obj)、加运算及乘运算):

list长度:

list每个元素乘一个数值:

list2 = numpy.dot(list2,2)

list类似矩阵相乘(每个元素对应相乘取和):

list3 = numpy.dot(list1,list1)

#要求相乘的两个list长度相同

list3 = numpy.dot(list2,list22)

#要求numpy.shape(list2)和numpy.shape(list22)满足“左行等于右列”的矩阵相乘条件,相乘结果numpy.shape(list3)满足“左列右行”

2.numpy数据结构:

Array:

产生array:

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

data=np.array(list1)

data1 = np.zeros(5) #data1.shape = (5,),5列

data1 = np.eye(5)

索引array:

datacut = data[0,2] #取第零行第二列,此处是6

切片array:

datacut = data[0:2,2] # array([6, 5])

array长度:

data.shape

data.size

np.shape(data)

np.size(data)

len(data)

array拼接:

#括号内也有一个括号(中括号或者小括号)!

d = np.concatenate((data,data))

d = np.concatenate((data,data),axis = 1) #对应行拼接

array加法:逐个相加

array乘法:

d = data data #逐个相乘

d = np.dot(data,data) #矩阵相乘

d = data 3 #每个元素乘3

d = np.dot(data,3) #每个元素乘3

array矩阵运算:

取逆 : np.linalg.inv(data)

转置:data.T

所有元素求和 : np.sum(data)

生成随机数:np.random.normal(loc=0, scale=10, size=None)

生成标准正态分布随机数组:np.random.normal(size=(4,4))

生成二维随机数组:

np.random.multivariate_normal([0,0],np.eye(2))

生成范围在0到1之间的随机矩阵(M,N):

np.random.randint(0,2,(M,N))

Matrix:

创建matrix:

mat1 = np.mat([[1, 2, 3], [4, 5, 6]])

mat1 = np.mat(list)

mat1 = np.mat(data)

matrix是二维的,所有+,-,*都是矩阵操作。

matrix索引和分列:

mat1[0:2,1]

matrix转置:

np.transpose(mat1)

mat1.transpose()

matrix拼接:

np.concatenate([mat1,mat1])

np.concatenate([mat1,mat1],axis = 1)

numpy数据结构总结:对于numpy中的数据结构的操作方法基本相同:

创建:np.mat(list),np.array(list)

矩阵乘:np.dot(x,y)

转置:x.T or np.transpose(x)

拼接:np.concatenate([x,y],axis = 1)

索引:mat[0:1,4],ary[0:1,4]

3.pandas数据结构:

Series:

创建series:

s = pd.Series([[1,2,3],[4,5,6]],index = [‘a’,‘b’])

索引series:

s1 = s[‘b’]

拼接series:

pd.concat([s1,s1],axis = 1) #也可使用s.append(s)

DataFrame:

创建DaraFrame:

df = pd.DataFrame([[1,2,3],[1,2,3]],index = ['a','b'],columns = ['x','y','z'])

df取某一列:

dfc1 =df.x

dfc1 = df[‘x’]

dfc2 = df.iloc[:,0] #用.iloc方括号里是数字而不是column名!

dfc2 = df.iloc[:,0:3]

df取某一行:

dfr1 = df.iloc[0]

df1 = df.iloc[0:2]

df1 = df[0:2] #这种方法只能用于取一个区间

df取某个值:

dfc2 = df.iloc[0,0]

dfc2 = df.iloc[0:2,0:3]