python数组基本操作总结

python数组基本操作总结一 列表 元祖 nbsp nbsp 1 元祖 nbsp nbsp nbsp nbsp nbsp nbsp 1 创建 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp tuple01 创建空元组 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp tuple01 2 nbsp 元组中只包含一个元素时 需要在元素后面添加逗号 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp tuple01 joe susan black monika nbsp nbsp nbsp nbsp nbsp nbsp 2 将元组转换为

一.列表,元祖,:

                tuple01 = ()#创建空元组

                    tuple01 = (2,) #元组中只包含一个元素时,需要在元素后面添加逗号

        (2)将元组转换为列表:

        (4)元组中的元素值是不允许修改的,禁止删除或添加元素,可以del删除整个元祖

        (5)连接:

            t = (1,2,3)+(4,5,6) #(1,2,3,4,5,6)

            #可以使用切片再连接的方式修改元祖元素;或转化为列表

          (6)内置函数:

                len(t) #长度

                max(t)#返回最大元素

                min(t)

          (7)复制:

               tuple01*2   #所有元素复制两倍

          (8)元素是否存在:

                2  in  tuple01  #返回bool

            (9)迭代:

                for  x  in  tuple01 : print(x)

        2.列表:

            (4)删除:

            (5)操作符:

                

Python 表达式 结果 描述
len([1, 2, 3]) 3 长度
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
[‘Hi!’] * 4 [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] 重复
3 in [1, 2, 3] True 元素是否存在于列表中
for x in [1, 2, 3]: print x, 1 2 3 迭代

       (6)转化为元祖:

                tuple([1,2,3])



            (7)函数:

序号 方法
1 list.append(obj)
在列表末尾添加新的对象

2 list.count(obj)
统计某个元素在列表中出现的次数

3 list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

4 list.index(obj)
从列表中找出某个值第一个匹配项的索引位置

5 list.insert(index, obj)
将对象插入列表

6 list.pop([index=-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

7 list.remove(obj)
移除列表中某个值的第一个匹配项

8 list.reverse()
反向列表中元素

9 list.sort(cmp=None, key=None, reverse=False)
对原列表进行排序

            (8)创建一个有规律的二维列表      

[[0 for col in range(cols)] for row in range(rows)]

             (9)

                [x if x>5 else x+100 for x in arr ]

            (5)方法:

Python字典包含了以下内置函数:

序号 函数及描述
1 cmp(dict1, dict2)
比较两个字典元素。

2 len(dict)
计算字典元素个数,即键的总数。

3 str(dict)
输出字典可打印的字符串表示。

4 type(variable)
返回输入的变量类型,如果变量是字典就返回字典类型。

Python字典包含了以下内置方法:

序号 函数及描述
1 dict.clear()
删除字典内所有元素

2 dict.copy()
返回一个字典的浅复制

3 dict.fromkeys(seq[, val])
创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值

4 dict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值

5 dict.has_key(key)
如果键在字典dict里返回true,否则返回false

6 dict.items()
以列表返回可遍历的(键, 值) 元组数组

7 dict.keys()
以列表返回一个字典所有的键

8 dict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

9 dict.update(dict2)
把字典dict2的键/值对更新到dict里

10 dict.values()
以列表返回字典中的所有值

11 pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

12 popitem()
随机返回并删除字典中的一对键和值。

二.numpy:

    1.numpy创建的数组类型为: numpy.ndarray

    (1)array方法:

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

            np.array( (1,2,3) )   #传入元祖

            zeros返回全0数组

            ones返回全1数组

            np.zeros( (2,4,5) )  #2*4*5

            # ones,empty方法使用方式类似

        

        (3)arange方法:

            np.arange(5)  #默认从0开始,到4的整数数组,默认步长为1

            np.array(1,5)   #从1开始到4

            np.array(1,10,3) #从1到9,步长为3

            np.array(10,3,-2) #从10到2,步长为2

            

        (4)linespace,logspace方法:

               np.linespace(1,10,5) #从1到10的等差数列,5个数

               np.logspace(1,2,5,base=10) #从101到102的等比数列,5个数,不设base默认以e为底

        

        (5)random模块:

                np.random.random( (2,3) ) #传入元祖,2*3数组,元素是0-1随机浮点数,返回类型是列表;

                np.random.rand(2,3) #不传元祖,元素是0-1随机浮点数,2*3,

                np.random.randn( 2,3 ) #不传元祖 ,元素是服从标准正态分布的随机样本,大部分在[-2,2]之间,2*3

                np.random.randint(1,10,(2,3)) #1到9之间的随机整数,2*3

        

        2.ndarray的属性:

            arr = np.array(np.random.randint(1,9,(2,3,4)))

            arr.ndim  #ndarray维度,3

            arr.shape #形状 (2,3,4)

            arr.size  #元素个数 ,24

            arr.itemsize #每个元素占字节数 ,4

            arr01 = np.array([1,2,3,4,5],dtype = np.float32)  #dtype 指定元素类型 有int,float32,float64,double多种类型

            arr02 = arr01.astype(np.int)   #修改元素类型

            arr02.dtype  #返回元素类型

        

            例:

            修改前:

            [[1, 5, 6, 3],      [4, 4, 6, 4],      [1, 1, 7, 6]]
         修改后:  

            [[1, 5, 6],      [3, 4, 4],      [6, 4, 1],      [1, 7, 6]]

               arr01.shape = (12)  # [1, 5, 6, 3, 4, 4, 6, 4, 1, 1, 7, 6]

                10arr01  #每个数组元素与标量运算

                   arr02arr03   #数组与数组形状一致

                    #特殊情况:

                       例:A:2*3*4  与 B:2*1*4可以运算,A的每个2*1*4与B运算;这样的要求就是B有一维是1,其他维和A一致;

            

            4.索引:

            

        [[[3, 2, 4, 5], [3, 2, 4, 2], [2, 1, 8, 8]], [[8, 1, 8, 8], [6, 1, 6, 2], [7, 7, 8, 5]], [[7, 6, 8, 6], [8, 7, 4, 4], [1, 6, 5, 5]]]

        arr09[:,:,:] #全部,和arr09一样

        [[8 1 8 8]

      [6 1 6 2]      [7 7 8 5]]

        [[3 2 4 2]

      [6 1 6 2]      [8 7 4 4]]

        arr09[:,:,1]  #3*3

        [[2 2 1]

      [1 1 7]      [6 7 6]]

        arr09[0,0,0] 

        #  3

        (2)arr10[:,:] = 100  #直接修改arr10数组元素的值;

        (3)切片:

                [[ 1. 1. 1. 1. 1. 1.]

             [ 1. 1. 1. 1. 1. 1.]]

                 [[ 1. 1. 1. 1. 1. 1.]]

          (4)花式索引:

                [[ 0, 1, 2, 3],

     [ 4, 5, 6, 7],     [ 8, 9, 10, 11],     [12, 13, 14, 15],     [16, 17, 18, 19],     [20, 21, 22, 23],     [24, 25, 26, 27],     [28, 29, 30, 31]]

            arr12[0,3] #标准索引,返回3

                  [[ 0 1 2 3]

             [12 13 14 15]             [20 21 22 23]]

            arr12[[0,3,5],[0,1,2]]  #返回第0行第0列,第3行第1列,第5行第2列的那个数组成的数组;

                [ 0 13 22]

            arr12[np.ix_( [0,3,5] , [0,1,2] ) ]  #有索引器,返回3*3,第0行第0列,第3行第1列,第5行第2列
                [[ 0, 1, 2],

     [12, 13, 14],     [20, 21, 22]]

            (5)布尔索引:

                [[6, 6, 5, 6],

     [6, 1, 7, 7],     [5, 1, 1, 8]]

                [[False, False, False, False],

     [False, True, False, False],     [False, True, True, False]]

                arr12[arr12<5] 

                [1, 1, 1]

                #索引(arr1<5)和 原数组形状相同,返回  一维            

                arr1[ [true,false,false] ]

                [[6, 6, 5, 6]]

            

               5.常用的一元函数:

                np.sqrt(arr)    #计算各个元素的平方根

                np.log1p(arr)  #分别计算自然对数、底数为2的log以及底数为e的log(1+x)

                np.sign(arr)  #计算各个元素的正负号: 1 正数,0:零,-1:负数

                np.rint(arr)  #四舍五入

            (1)转置

               (2)拉伸:

                    [[5, 7],

         [4, 1]]

               np.tile(arr,3) #横向拉伸3次

                [[5 7 5 7 5 7]

             [4 1 4 1 4 1]]

                np.tile(arr,(3,3)) #横向拉伸3次,纵向拉伸3次

                  [[5 7 5 7 5 7]

             [4 1 4 1 4 1]             [5 7 5 7 5 7]             [4 1 4 1 4 1]             [5 7 5 7 5 7]             [4 1 4 1 4 1]]

            (3)聚合:

                #arr可以调用的聚合函数有mean,sum,max,min,std,var,axis=1对每一列聚合,axis=0对每一行聚合

                arr.mean(axis = 0) #2*1

            

             (4)where:

                np.where([[True, False], [True, True]] , [[1, 2], [3, 4]] , [[9, 8], [7, 6]])   

               (5)去重:

                #去除重复元素,如果arr是多维的,返回一维的;

    三.dataFrame:

        创建方式为:

        在机器学习算法中,ndarray比dataFrame好操作,所以:

                  
 
 
 
 
       
         

















版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205985.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午4:44
下一篇 2026年3月19日 下午4:44


相关推荐

  • 3步极速部署!阿里云OpenClaw一键部署保姆级教程

    3步极速部署!阿里云OpenClaw一键部署保姆级教程

    2026年3月13日
    3
  • 临界段CCriticalSection的使用[通俗易懂]

    临界段CCriticalSection的使用[通俗易懂]类CCriticalSection的对象表示一个“临界区”,它是一个用于同步的对象,同一时刻仅仅同意一个线程存取资源或代码区。临界区在控制一次仅仅有一个线程改动数据或其他的控制资源时很实用。比如,在链表中添加�一个结点就仅仅同意一次一个线程进行。通过使用CCriticalSection对象来控制链表,就能够达到这个目的。它就像是一把钥匙,哪个线程获得了它就获得了执行线程的权力,而把其…

    2022年7月20日
    12
  • 常用的git提交代码命令

    常用的git提交代码命令一 初始化本地仓库 提交代码 提交到远程 git 仓库 1 初始化代码仓库 gitinit2 将当前目录下的所有文件放到暂存区 gitadd 3 查看文件状态 gitstatus4 添加提交的描述信息 gitcommit m 提交的描述信息 5 远程仓库地址 gitremoteadd 远程仓库地址 6 推送到远程仓库 gitpush uoriginmaste 二 创建分支 提交代码到分支 1 创建切换分支 gitcheckout bdevdev

    2026年3月19日
    2
  • OpenClaw改名始末:Clawdbot到Moltbot再到OpenClaw的完整演变历程

    OpenClaw改名始末:Clawdbot到Moltbot再到OpenClaw的完整演变历程

    2026年3月13日
    2
  • VC++ 安装程序制作

    VC++ 安装程序制作VC 安装程序制作 2009 10 2510 40 当用 VC 完成应用程序的编制后 如果不为它制作一个安装程序 似乎感到缺少一点什么 你也许急于到市面找制作安装程序的工具 如 CreateInstal iSetup 等 事实上 VC 6 0 的企业版已为我们提供了一套制作安装程序的工具 InstallShiel

    2026年3月17日
    1
  • 基于近邻的协同过滤算法

    基于近邻的协同过滤算法这节课我们来学习K近邻在推荐系统中的应用,你将完成本课程的第一个实战项目:基于KNN的电影推荐系统!为了使你能够顺利地完成实战内容,我们先了解一下推荐系统中的基础知识。基于近邻用户的协同过滤假定有一个场景:某个周日的下午,你感觉很无聊,然后从电脑上打开了一个视频网站,想看下最近有什么好看的电影。然而你发现网站上的热门电影基本都看过,其他的电影又太多,不知道该看什么。想使用搜索框去查一下,但是又不知道该搜什么关键词,这个时候你的内心很焦灼,总不能挨个去尝试吧,那时间成本也太大了…仔细想想还是有办法的,那

    2022年6月30日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号