zoukankan      html  css  js  c++  java
  • python学习笔记-Day2 Numpy数组

    1. 实现两个数组相加,在数据量特别大的时候

    产生数组:

    (1)  从列表产生数组:a=[0,1,2,3]

                   a=np.array(1)

                    a

    (2)  从列表传入

    a=np.array([1,2,3,4])

    (3)  生成全0的数组

    np.zeros(5)

    (4)  生成全1的数组

    np.ones(5,dtype=’bool’)àdtype可以用来指定数据类型

    (5)  可以使用fill方法将数组设为指定值

    (6)  生成整数序列

    a=np.arange(1,10)从1开始生成数据,一直到9

    (7)  生成等差数列

    a=np.linspace(1,10,10)从1到10总共10个等差数列

    (8)  生成随机数

    a=np.random.rand(10)

    (9)  生成具有服从标准正态的随机数

      a=np.random.randn(10)

    (10)  生成随机整数

    a=np.random.randint(10)

    2. 查看类型

    (1)  查看数组类型

    type(a)

    (2)  查看数组中的数据类型

    a.dtype

    (3)  查看形状

    a.shape

    (4)  查看数组元素的个数

    a.size

    (5)  查看维度

    a.ndim

    3. 索引和切片

    (1)  索引第一个元素

    (2)  修改第一个元素的值,切片:支持负索引

    4. 多维数组及其属性

    可以利用array来实现二维数组

    a=np.array([[1,2,3,4],

              [5,6,7,8]])

    5. 多维数组索引

    对于二维数组,可以传入两个数来索引:

    [[1,2,3,4],

    [5,6,7,8]]

    a[1,3]à其中1是行索引,3是列索引,中间用逗号隔开,事实上python会将他们看作一个元组(1,3),然后按照顺序进行对应,可以利用索引给他们赋值

    事实上,我们还可以使用单个索引来索引一整行内容

    a[1]

    python会将这个单元组当成对第一维的索引,然后返回对应的内容

    a[:,1]

    这样的写法是第二列的内容

    6. 多维数组切片

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

    想得到第一行的第4和第5个元素

    f[0,3:5]

    想得到最后两行的最后两列

    f[2:,2:]

    每一维都支持切片的规则,包括负索引

    想要隔行取:f[2::2,2::2]

    7. 切片是引用

    切片在内存中使用的是引用机制,引用机制意味着python并没有为b分配新的空间来存储他的值,而是让b指向a所分配的内存空间,因此b会改变a的值,而这种现象在列表中并不会出现

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

    b=a[1:4]

    b[1]=100

    此时a的对应的值会发生改变

    一个解决方案就是使用copy()方法产生一个复制,复制操作即会申请一个新的空间

    8. 花式索引

    (1)  一维花式索引

    a=np.arange([0,100,10])

    index=[1,2,-3]

    y=a[index]

    y

    索引出来的即为10,20,70

    (2)  利用布尔数组花式索引

    (3)  二维花式索引

    (4)  不完全索引

    只给定行索引的时候,返回整行

    y=a[:3]

    9. where语句

    where函数会返回所有非零元素的索引

    (1)  一维数组

    判断数组中的元素是不是大于3

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

    a>3

    则会返回[false false false true true true]

    若要数组中所有大于3的元素的索引位置:

    np.where(a>3)

    where返回值是一个元组,返回的是索引位置

    10.数组类型转换

    (1)  当数组内元素类型不相同时

      a=np.array([1.3,-2],dtype=float)

    (2)  将其强制转换

    (3)  astype方法-返回一个新数组

     a=np.array([1,2,3])

     b=a.astype(float)

    11.数组排序

    (1)  sort函数

     a=np.array([3212,4343,2121,5442])

     b=np.sort(a)

    (2)  argsort函数

     argsort返回从小到大的排列在数组中的索引位置

    (3)   

    12.求和np.sum()

    13.最大值np.max()

    14.最小值np.min()

    15.均值np.mean()

    16.标准差np.cov()

  • 相关阅读:
    "pom.xml" could not be activated because it does not exist.
    spring boot启动STS 运行报错 java.lang.NoClassDefFoundError: ch/qos/logback/classic/LoggerContext
    @SpringBootApplication cannot be resolved to a type In STS
    Maven搭建之后的设置
    自动化部署工具
    康威定律
    Thrift简介
    JVM分代通俗解释
    过滤器和监听器之间的区别
    Configuring WS-Security UsernameToken and WS-SecureConversation (Symmetric Connection Creation)
  • 原文地址:https://www.cnblogs.com/Cucucudeblog/p/9827404.html
Copyright © 2011-2022 走看看