https://blog.csdn.net/sinat_34474705/article/details/74458605?utm_source=blogxgwz1

https://www.cnblogs.com/ArsenalfanInECNU/p/4793354.html

https://blog.csdn.net/zxyhhjs2017/article/details/80157930

https://blog.csdn.net/sinat_27693393/article/details/73195570

https://vimsky.com/article/3717.html

二维数组的创建。

二维数组本身只是数学上的一个概念,我们要把数学中的东西,写进程序中

可以有多种表示数组的方式,

一种是利用np的库

一种是python本身的双层列表

(这两种格式只是支持的索引方式不相同。,,用np创建的array支持的更多些。)

1、

import numpy as np
c = np.array([[1.0,2.0],[3.0,4.0]])
print(c)

>>>[[1. 2.]
       [3. 4.]]
print(c[:,[1]])  #这个是输出所有行的第一列

>>> import numpy
>>> a = numpy.zeros(shape=(5,2))
>>> a
array([[ 0., 0.],
[ 0., 0.],
[ 0., 0.],
[ 0., 0.],
[ 0., 0.]])
>>> a[0] = [1,2]
>>> a[1] = [2,3]
>>> a
array([[ 1., 2.],
[ 2., 3.],
[ 0., 0.],
[ 0., 0.],
[ 0., 0.]])

2、

pop=[[1,0,0,0],[0,1,1,1],[0,0,0,0]]
print(pop)    #这个用双层序列构成的二维数组,是没有办法完成上面的np输出一列的,

#目前我知道的只有用循环

>>>[[1, 0, 0, 0], [0, 1, 1, 1], [0, 0, 0, 0]]

关于两种格式的互换,

叫做list和array的互换,

显然array支持的搜寻元素方式跟多一些。

import numpy as np
u = np.array([[1,2],[3,4]])
print("u array:",u)
m = u.tolist()         #u array转换为list  m
print("m list:",m)
k = np.array(m)    #list m 再转换回array  k
print("k array:",k)

>>>u array: [[1 2]
                    [3 4]]
>>>m list:    [[1, 2], [3, 4]]
>>>k array: [[1 2]
                    [3 4]]

二维数组创建后赋值的问题

创建一个多行多列的数组如  56行,247列

##创建噪声序列
#mat=np.ones((56,247))                                                          #注意这里传进去的要是元组这里是mat的类型,namestr是名字文件中有几个名字,也就是mat有几行。
#print(mat.shape[0])
#print(mat.shape[1])
#for i in range(mat.shape[0]):
#    for k in range(mat.shape[1]):
#        mat[i][k]=mat[i][k]*10+random.random()                                #后面是添加一个随机数。产生一个有噪声的序列。
#print(mat)

双层列表的切片

pop=[[1,0,0,0],[0,1,1,1],[0,0,0,0]]
print(pop)
print(pop[:2])

print(pop[2:])

>>>[[1, 0, 0, 0], [0, 1, 1, 1], [0, 0, 0, 0]]
>>>[[1, 0, 0, 0], [0, 1, 1, 1]]                                                           #这个是切片后的

>>>[[0, 0, 0, 0]]                                                                             #切片的另一部分

二维数组,如何去除某一行或者某一列

1.numpy.delete(arr,obj,axis=None)
arr:输入向量
obj:表明哪一个子向量应该被移除。可以为整数或一个int型的向量
axis:表明删除哪个轴的子向量,若默认,则返回一个被拉平的向量

  • a = np.array(np.arange(12).reshape(3,4))
  •  
  • a
  • Out[301]:
  • array([[ 0, 1, 2, 3],
  • [ 4, 5, 6, 7],
  • [ 8, 9, 10, 11]])
  •  
  • np.delete(a,1,0)
  • Out[302]:
  • array([[ 0, 1, 2, 3],
  • [ 8, 9, 10, 11]])
  •  
  • np.delete(a,1,1)
  • Out[303]:
  • array([[ 0, 2, 3],
  • [ 4, 6, 7],
  • [ 8, 10, 11]])
  •  
  • np.delete(a,[0,1],1)
  • Out[304]:
  • array([[ 2, 3],
  • [ 6, 7],
  • [10, 11]])
  •  
  • np.delete(a,np.s_[::2],1)
  • Out[306]:
  • array([[ 1, 3],
  • [ 5, 7],
  • [ 9, 11]])
     
     
    示例:

    1.删除一列

    >>> dataset=[[1,2,3],[2,3,4],[4,5,6]]
        >>> import numpy as np
        >>> dataset = np.delete(dataset, -1, axis=1)
        >>> dataset
        array([[1, 2],
               [2, 3],
               [4, 5]])

    2.删除多列

    arr = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
        np.delete(arr, [1,2], axis=1)
        array([[ 1,  4],
               [ 5,  8],
               [ 9, 12]])

     
     
     

数组中格式的问题

https://blog.csdn.net/wld914674505/article/details/80460042

  1. z = np.array([[1, 2, 3, 4],
  2. [5, 6, 7, 8],
  3. [9, 10, 11, 12],
  4. [13, 14, 15, 16]])
  5. z.shape
  6. (4, 4)                            #这里的z创建出来是  4行4列
     
     
     
    但我们只想要一列的话:
     
    • z.reshape(-1,1)
    • array([[ 1],
    • [ 2],
    • [ 3],
    • [ 4],
    • [ 5],
    • [ 6],
    • [ 7],
    • [ 8],
    • [ 9],
    • [10],
    • [11],
    • [12],
    • [13],
    • [14],
    • [15],
    • [16]])

    想要变成两列:
    • z.reshape(-1, 2)
    • array([[ 1, 2],
    • [ 3, 4],
    • [ 5, 6],
    • [ 7, 8],
    • [ 9, 10],
    • [11, 12],
    • [13, 14],
    • [15, 16]])

     
     
     
    python序列中每个元素加1的简单写法:
    n=[i+1 for i in range(1,10)]
    >>>[2,3,4,5,6,7,8,9,10]
     
    对应元素相加
    行相加、列相加:
    import numpy as np
    a = [1,2,3]
    b = [2,3,4]
    c = [3,4,5]
    print(np.sum([a,b,c], axis = 0))    #输出是[6 9 12]

    print(np.sum([a,b],axis=1))         #输出是[6 9]

     
     
     
    还有一个Python数组行和列返回结果:
    hang,lie=a.shape()                                 
    #上面的语句是错误的,报错如下:
    TypeError: 'tuple' object is not callable
    应该吧()去掉如:hang,lie=a.shape,这样才是正确的写法。

关于python中数组的问题,序列格式转换的更多相关文章

  1. python中的时间和时间格式转换

    1.python中的时间:要得到年月日时分秒的时间: import time #time.struct_time(tm_year=2012, tm_mon=9, tm_mday=15, tm_hour ...

  2. python中unicode, hex, bin之间的转换

    python中unicode, hex, bin之间的转换 背景 在smb中有个feature change notify, 需要改动文件权限dacl,然后确认是否有收到notify.一直得不到这个d ...

  3. Python中对两种utf-8格式的理解

    1.python文件开头utf-8格式的理解 2.程序中读取文件时utf-8格式的理解 aa.py文件代码示例: #!/usr/bin/python # -*- coding:utf-8 -*- fr ...

  4. REST Adapter实现SAP PI中的增强XML/JSON格式转换

    SAP标准的REST adapter有着XML/JSON转换的功能,它很有用,因为一方面SAP PI/PO内部以XML格式处理数据,而另一方面,在处理REST架构风格的时候,JSON才是事实上的格式. ...

  5. Python中字符串/字典/json之间的转换

    import json #定义一个字典d1,字典是无序的 d1 = { "a": None, "b": False, "c": True, ...

  6. REST Adapter实现SAP PI中的增强XML/JSON格式转换(转载)

    SAP标准的REST adapter有着XML/JSON转换的功能,它很有用,因为一方面SAP PI/PO内部以XML格式处理数据,而另一方面,在处理REST架构风格的时候,JSON才是事实上的格式. ...

  7. Python中数字之间的进制转换

    Python中的数据转换 在python中可以通过内置方法进行相应的进制转换,但需记得转化成非十进制时,都会将数字转化成字符串 转化成二进制 a = 10 #声明数字,默认十进制 b = bin(a) ...

  8. 在SQL Server中 获取日期、日期格式转换

    --常用日期转换参数: PRINT CONVERT(varchar, getdate(), 120 ) 2016-07-20 16:09:01 PRINT replace(replace(replac ...

  9. python中数组与多维数组用法介绍

    增加时a.append( 'a ')就可以了.只要按顺序加,就没有问题 . 使用时,完全可以使用下标: 代码如下 复制代码 a[0] a[1] 但出果引用不存在的下标,则会引发异常.这时,你需要先添加 ...

随机推荐

  1. oracle中查询表的信息,包括表名,字段名,字段类型,主键,外键唯一性约束信息

    来源于网上整理 总结了一下oracle中查询表的信息,包括表名,字段名,字段类型,主键,外键唯一性约束信息,索引信息查询SQL如下,希望对大家有所帮助: 1.查询出所有的用户表select * fro ...

  2. 访问API的方式为:localhost/api/customers, 创建自定义JSON格式化器

    注意的是,访问API的方式为:localhost/api/customers,在实际中将要根据情况替换合适的端口,默认所有的WEB API都是通过/api根目录的方式访问的 创建自定义JSON格式化器 ...

  3. 推荐学习《算法之美:指导工作与生活的算法》中文PDF+英文PDF

    我们所有人的生活都受到有限空间和有限时间的限制,因此常常面临一系列难以抉择的问题.在一天或者一生的时光里,哪些事是我们应该做的,哪些是应该放弃的?我们对杂乱无序的容忍底线是什么?新的活动与熟悉并喜爱的 ...

  4. PHP 相关配置

    1. php-fpm的pool 编辑"php-fpm"配置文件"php-fpm.con" vim /usr/local/php/etc/php-fpm.conf ...

  5. 【Henu ACM Round#17 C】Kitahara Haruki's Gift

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 判断sum/2这个价值能不能得到就可以了. 则就是一个01背包模型了. 判断某个价值能否得到. f[j]表示价值j能否得到. f[0 ...

  6. 加快编译的技巧 & mount及tmpfs

    除了在头文件里面 #ifndef xxx 可以在实际 include这个头文件的前后,加上 #ifndef,这样就不会打开和扫描这个头文件了. 另外,下面这篇文章里面也总结了 http://www.c ...

  7. 从头认识java-13.12 超类通配符

    这一章节我们来讨论一下超类通配符. 1.什么是超类通配符 在前一章节我们提到一种通配符,是使用<? extends XXX>来实现的,导致了后面的一系列问题,如今我们引入还有一种通配符-- ...

  8. 再谈怎样以最简单的方法将泛型为String类型的集合或String类型的数组转化为逗号间隔字符串形式

    今天review代码,看见某些大爷在将泛型为String类型的集合或String类型的数组转化为逗号间隔字符串形式时仍然仅仅顾结果不注重过程,"大爷"咱能负点责任吗? 将泛型为St ...

  9. 82.QT实现委托构造

    #include "mainwindow.h" #include <QApplication> //创建一个MainWindow类 class myclass { pr ...

  10. Elasticsearch之marvel(集群管理、监控)插件安装之后的浏览详解

    前提 Elasticsearch之插件介绍及安装 https://i.cnblogs.com/posts?categoryid=950999&page=2  (强烈建议,从头开始看) 比如,我 ...