• numpy学习笔记


    1. numpy概述(1)Numerical Python,数值的Python,补充了Python语言所欠缺的数值计算能力(2)是其他数据分析及机器学习库的底层库(3)完全标准C语言实现,运行效率充分优化(4)开源免费2. numpy的核心:多维数组1.代码简洁2. 底层实现3. numpy基础(1)ndarray数组(2)内存中的ndarray对象元数据实际数据(3)ndarray数组对象的特点(4)ndarray数组对象的创建1.np.array(任何可被解释为numpy数组的逻辑结构)2.np.arange(起始值(0),终止值,步长(1))3.np.zeros(数组元素个数,dtype='类型')4.np.ones(数组元素个数,dtype='类型')5.np.zeros_like() 6.np.ones_like()4. ndarray对象属性的基本操作(1)数组的维度np.ndarray.shape1.维度基础操作(2)元素的类型:np.ndarray.dtype(3)数组元素的个数:np.ndarray.size(4)数组元素索引(下标)5.ndarray对象属性操作详解(1)numpy的内部基本数据类型(2)自定义复合类型

    1. numpy概述

    (1)Numerical Python,数值的Python,补充了Python语言所欠缺的数值计算能力

    (2)是其他数据分析及机器学习库的底层库

    (3)完全标准C语言实现,运行效率充分优化

    (4)开源免费

    2. numpy的核心:多维数组

    1.代码简洁

    减少python代码中的循环

    2. 底层实现

    厚内核(C)+薄接口(Python),保证性能

    3. numpy基础

    (1)ndarray数组

    用np.ndarray类的对象表示n维数组

    import numpy as np
    ary=np.array([1,2,3,4,5,6])
    print(ary,type(ary))
    print(ary.shape)
    ary.shape=(2,3)
    print(ary,ary.shape)
    ary.shape=(6,)
    print(ary)
    print(ary*3)##每个都乘3
    [1 2 3 4 5 6] 
    (6,)
    [[1 2 3]
     [4 5 6]] (2, 3)
    [1 2 3 4 5 6]
    [ 3  6  9 12 15 18]

    (2)内存中的ndarray对象

    元数据

    存储对目标数组的描述信息,如:dim count\dimensions\dtype\data等

    实际数据

    完整的数组数据

    将实际数据与元数据分开存放,一方面提高了内存空间的使用效率,一方面减少对实际数据的访问频率,提高性能

    (3)ndarray数组对象的特点

    1.numpy数组是同质数组,所有元素的数据类型必须相同

    2.下标从0开始

    (4)ndarray数组对象的创建

    1.np.array(任何可被解释为numpy数组的逻辑结构)

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

    2.np.arange(起始值(0),终止值,步长(1))

    import numpy as np
    a=np.arange(2,9,1)
    print(a)

    3.np.zeros(数组元素个数,dtype='类型')

    4.np.ones(数组元素个数,dtype='类型')

    5.np.zeros_like()

    6.np.ones_like()

    4. ndarray对象属性的基本操作

    (1)数组的维度np.ndarray.shape

    1.维度基础操作

    import numpy as np
    a=np.arange(1,9)
    print(a,a.shape)
    #改变维度
    a.shape=(2,4)
    print(a,a.shape)
    ​
    [1 2 3 4 5 6 7 8] (8,)
    [[1 2 3 4]
     [5 6 7 8]] (2, 4)

    (2)元素的类型:np.ndarray.dtype

    import numpy as np
    a=np.array([1,2,3,4,5,6])
    #转换ary元素的类型
    b=a.astype(float)
    print(type(b),b,b.dtype)
    ​
     [1. 2. 3. 4. 5. 6.] float64
    ​
    print(a.dtype)
    #错误的修改数据类型方式
    a.dtype='float32'
    print(a,a.dtype)
    int64
    [[1.4e-45 0.0e+00 2.8e-45 0.0e+00 4.2e-45 0.0e+00 5.6e-45 0.0e+00]
     [7.0e-45 0.0e+00 8.4e-45 0.0e+00 9.8e-45 0.0e+00 1.1e-44 0.0e+00]] float32
    ​
    b=a.astype('float32')#要赋值给新的变量接收
    print(b,b.dtype)
    [[1.4e-45 0.0e+00 2.8e-45 0.0e+00 4.2e-45 0.0e+00 5.6e-45 0.0e+00]
     [7.0e-45 0.0e+00 8.4e-45 0.0e+00 9.8e-45 0.0e+00 1.1e-44 0.0e+00]] float32

    (3)数组元素的个数:np.ndarray.size

    print(b.size,len(b))#len是最外层有多少个
    16 2

    (4)数组元素索引(下标)

    c=np.arange(1,19)
    c.shape=(3,2,3)
    print(c)
    #两种写法
    print(c[0][1][0])
    print(c[0,1,0])
    #开头有几个中括号就是几维
    [[[ 1  2  3]
      [ 4  5  6]]
    ​
     [[ 7  8  9]
      [10 11 12]]
    ​
     [[13 14 15]
      [16 17 18]]]
    4
    4
    ​
    #通过索引把所有元素遍历出来
    for i in range(c.shape[0]):#shape返回的是元组
        for j in range(c.shape[1]):
            for k in range(c.shape[2]):
                print(c[i,j,k])
                
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    •

    5.ndarray对象属性操作详解

    (1)numpy的内部基本数据类型

  • 相关阅读:
    北大学子荣获SRC全球总决赛本科生第一名!完美世界被曝开 17800 元“付费上班”项目;苹果和安卓有望统一充电接口|极客头条
    java AOP实现方式及Spring AOP总结
    Mac上安装harbor
    华为机试真题 C++ 实现【猴子爬山】
    基于STM32的步进电机驱动设计( 含源码 )
    【一起学Java-第七篇】Java中类与对象核心详解
    输出最大选修学分问题
    Spark基础【RDD分区和并行度】
    Java核心编程(14)
    C#将对象转换为Dictionary字典集合
  • 原文地址:https://blog.csdn.net/weixin_41117318/article/details/128179095