python的数据类型---python入门学习(一)

本文详细介绍了 Python 中的主要数据类型,包括列表、元组、字符串、字典、集合和矩阵等,并提供了丰富的示例代码和内置函数说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    从实用角度出发,根据数据挖掘中最长使用的语法和数据类型出发,对python进行学习,主要包含一下几个模块:数据类型、文件系统、函数、类和对象。学习了一段时间python之后,python相较于matlab最大的区别是编程思想和BIF。由原来的面向过程到现在的面向对象,python无处不对象,这句话体会会随着对python的了解而更加深刻。初学难免有疏漏或者错误,欢迎大家指正。

数据类型:
1. 列表:
列表的创建方式:
  (1)创建并且初始化   number = [1,2,3]    mix = [1,2,"python",[6,7,8]]
  (2)创建一个空列表   number = []
向列表中添加元素:
  (1)在列表的末尾添加:
    number.append(5)        直接添加一个数字元素
    number.append([6,5,4])  在后面添加一个列表元素,得到的结果是:[1,2,3,[6,5,4]]
    number.extend([6,5,4])  在后面对列表进行扩展,得到的结果是:[1,2,3,6,5,4]
  (2)在列表的具体位置插入元素:
    number.insert(0,9)      在第一个位置插入元素9,得到的结果是:[9,1,2,3]
在列表中获取删除元素:
获取元素:
  (1)和数组一样通过下标来获取相应的元素  number[2]   3
  (2)同时获取多个元素,列表分片          number[0:2]  访问0-1个元素,左闭右开
  (3)按照一定步长来跳跃访问元素          number[0:9:2]/number[::2] 访问元素步长为2
  (4)逆序访问,相当于列表反转            number[::-1]
删除元素:
  (1)number.remove(1)   按照元素内容来删除,删除第一个元素1,只能删除一个
  (2)del number[1]      按照元素位置来删除,删除第二个元素。
列表的BIF:
********************************************************************
len(list)                     返回列表元素的个数
del list                      删除这个列表
list.count(obj)               返回obj在列表中出现的次数
list.index(obj)               返回第一个obj在list中的位置
list.index(obj,start,stop)   返回第一个obj在list的查找范围中的位置
list.reverse()                返回列表的逆序列表
list.sort()                   对列表从小到大排序
*********************************************************************


2. 元组
元组与列表最大的区别是列表可以内任意的修改,但是元组是不可变的
对元组的更改只能通过切片再拼接的方法
元组的本质在于:逗号,而不是小括号
元组的BIF和列表是一致的(凡是改变元组的BIF除外,比如逆序,排序等等)


3. 字符串
字符串也是不可更改的,更改的方法跟元组一样,必须采用切片拼接的方式
字符串的BIF:
*********************************************************************
str.startswith(obj)         以obj开头
str.endswith(obj)           以obj结尾
str.find(obj,start,end)     查找是否有obj,有返回目标在整个数组中的下标,没有返回-1
str.index(obj,start,end)    作用跟find一样,只是不存在的话会报错
str.isalnum()               如果包含的全都是数字或者字母则返回true
str.isalpha()               如果全是字母则返回true,否则返回false
str.isdigit()               如果全是数字返回true,否则返回false
str.islower()               字符串中至少包含一个字母,且所有字母全是小写返回true
str.isupper()               字符串中至少包含一个字母,且所有字母全是大写返回true
str.isspace()               如果字符串中只包含空格,返回true
str.lower()                 将所有的大写字母转换成小写字母         
str.lower()                 将所有的小写字母转换成大写字母 
str.splitlines()            按照回车分割,返回一个列表
str.join(str1)              用str作为分隔符,插入到所有的str1的所有字符中。
str.split(sep = " ")        用sep去切分字符串str。默认是空格
********************************************************************
format
format()方法接受位置参数和关键字参数:
>> "{0} love {1}!!!".format("I","you")
'I love you!!!'


4. 序列
列表,元组,字符串统称为序列,因为他们具有共同的特性:
  (1)都可以通过索引得到每一个元素。
  (2)默认索引值都是从零开始的
  (3)可以通过分片的方法得到一个范围内的元素的集合。
  (4)有很多共同的操作符(BIF)
序列的BIF:
********************************************************************
list(iterable)              将一个可迭代对象转化成list
tuple(iterable)             将一个可迭代对象转化成tuple
str(obj)                    将一个对象转化成str
len(sub)                    返回sub参数的长度
max(sub)                    返回序列的最大值元素
min(sub)                    返回序列的最小值元素
sorted(iterable)            和sort一样,但是返回的是一个列表,sort直接对原列表操作     
reversed(iterable)          和reverse一样,但是返回的是一个迭代器对象,reverse直接对原列表操作 
enumerate(iterable)         生成二元组构成的迭代对象
zip(iterable1,iterable2)    打包成一个元组

********************************************************************


5. 字典
创建字典:
  (1)创建空字典            dict1 = {}
  (2)用dict来创建          dict1 = dict(tuple/list) 创建大型的字典通常使用这个方法,结合zip使用
  (3)映射关系的dict        dict1 = dict(F = 70,I = 80,A = 100),注意键值不能加引号
  (4)直接给字典的键赋值    dict1["x"] = 120 x存在则改变原来的值,不存在则创建新的键值,dict1存在
字典的BIF:
********************************************************************
dict.keys()                返回所有字典中的键
dict.values()              返回所有的字典中的键值
dict.items()               返回所有的字典的键和键值对
dict.get(key)              返回键所对应的键值,如果没有不会报错返回none   
dict.clear()               清空字典
dict.copy()                复制一份字典返回
********************************************************************


6.集合
在python中,用大括号括起来一组数字,没有体现任何的映射关系,构成的是一个集合
创建集合:
  (1)直接通过大括号,把需要包含的元素包含进来
  (2)使用set(sub)
访问集合:
  (1)set是无序的,所以不能通过下标来访问。
  (2)set可以通过in  not in 来访问
  (3)set.add(obj)可以给集合添加元素,set.remove(obj)可以删除元素  
不可变集合:
b = frozenset(a)     将a转化成一个不可变集合然后赋值给b,a依然可变


7. 矩阵(多维数组)

numpy工具包中的数据结构
这个是在实际应用中最重要的一种数据结构
注意:python中的矩阵是按照行来操作的,跟matlab是不一样的
(1)矩阵的创建:
  通常我们创建一个矩阵都会创建一个全0,或者全1的可以这样:
  arr = numpy.zeros((10,10,10))    
  arr = numpy.ones((10,10,10))     参数接收一个元组或者一个列表
  arr = random.random((2,3))       生成一个2行3列的数组,每个元素都是0-1之间的随机数
  如果直接创建一个确定数组:
  arr = numpy.array([2,3,4])
(2)矩阵的BIF:
  *********************************************************************
  ndarray.shape             返回矩阵的维度,是一个元组
  ndarray.size              返回矩阵的元素的个数,等于shape各个维度的乘积
  ndarray.dtype             返回矩阵元素的数据类型
  ndarray.reshape(x,y)      返回矩阵reshape之后的矩阵
  ndarray.resize(x,y)       直接改变当前矩阵
  ndarray.sum(axis = 0)     默认是计算整个矩阵的和,axis = 0,按列计算,axis = 1,按行计算
  ndarray.min(axis = 0)     默认是计算整个矩阵的最小值,axis = 0,按列计算,axis = 1,按行计算
  ndarray.max(axis = 0)     默认是计算整个矩阵的最大值,axis = 0,按列计算,axis = 1,按行计算
  *********************************************************************
(3)矩阵切片访问:
  在矩阵中有一个概念叫轴,每一行是一个轴,如果是一维列表,每个元素是一个轴。
  迭代是按照一个轴一个轴来进行的
  一维数组的切片操作等同于列表。
  多维数组中的...可以代表数组维度的补齐。比如:arr[1,...]代表arr的第一行

(4)矩阵的拼接:
  numpy.vstack(a,b)        在垂直方向上拼接,要求列的维度一致(按照行拼接)
  numpy.hstack(a,b)        在水平方向上拼接,要行的维度一致(按照列拼接)
  这两个函数都是采用的深拷贝。

(5)矩阵元素的查找:
  numpy.where(a==2),返回一个tuple,里面包括n(n是数组维度)个数组,每个数组是当前维度下标
  代码:
  idx = numpy.where(a == 2)
  idx_xy = zip(idx[0],idx[1])  
 
(6)通用函数:
  numpy提供sin,cos,exp,tanh等通用函数
  numpy.sin(ndarray)
  numpy.cos(ndarray)
  numpy.exp(ndarray)
  numpy.tanh(ndarray)

(7)打印数组:
  如果数组过大,python会自动打印边角的值,省略掉中间部分
  如果想要强制打印所有元素可以使用 np.set_printoptions(threshold = "nan") 设置打印边界

(8)矩阵乘法:计算规则跟matlab正好相反
  按照元素乘法:
  A*B        对应元素相乘
  矩阵乘法:
  dot(A,B)   矩阵相乘

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值