NumPy简介

NumPy简介

NumPy:是高性能科学计算和数据分析的基础包。它是pandas等其他各种工具的基础

NumPy的主要功能:

    1.ndarray,一个多维数组结构,高效且节省空间

    2.无需循环对整组数据进行快速运算的数学函数

    3.*读写磁盘数据的工具以及用于操作内存映射文件的工具

    4.*线性代数、随机数生成和傅里叶变换功能

    5.*用于集成C、C++等代码工具

    例:

          1.直接对所有数据进行运算    

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

加法运算

In []: num_np + 1

Out[]: array([2, 3, 4, 5, 6])

# 乘法运算

In []: num_np * 2 

Out[19]: array([ 2, 4, 6, 8, 10])

            2.求总销售额

import numpy as np 

pice ,num= [1,2,3,4,5],[1,2,3,4,5]

price_np,num_np = np.array(pice),np.array(num)

#一步方式

np.dot(pice_np,num_np)

# 两步方式

mult_list = price_np*num_np

mult_list.sum()

使用方法

安装方法:pip install numpy

引用方法:import numpy as np(官方推荐引入方式)

NumPy:ndarray-多维数组对象

        注意:

                1.ndarray可以是多维数组

                2.元素类型必须相同

      创建ndarray:

            np.array()

  np.array([1,2,3,4,5,6])  # 一维数组

np.array([[1,2,3], [4,5,6]])  # 二维数组

        np.arange(起点,终点,步长<可为小数>)

        np.linespace(起点,终点,份数)

                将起点到终点的直线,平均分为指定份数

        np.zeros( np.shape<数组的形状>,dtype=np.dtype)

            全为 0 的数组

        np.ones( np.shape,dtype=np.dtype)

        np.empty( np.shap)

                取得一块内存,不修改内存中的值,体现为随机的值    

        np. eye( n ): n行n列的单位矩阵

   ndarray运算

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

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

        1. 加: a + 1  ,a + b

        2.减: a - 1 , a - b

        3.乘:a * 2 , a * b

        4.除:a / 2 , a / b

        5.乘方: a ** 2 , a ** b 

        6.布尔: a < 5 , a < b(返回布尔数组,对应位置返回 T or F)

    ndarray索引

           a = np.arange(15).reshape(3,5)

            1. a[2][1] : 5

            2. a[0,1]  : 1

            3.花式索引:

                    1.a[[1,2,4,7]] 选出a中第 1, 2 ,4,7个数字

                    2.a[ : ,[1,3]] 选出二维数组,第1列和第3列数据

             4.布尔索引: a[ a< 5 ] ,a[a

                    注意:ndarray间运算需要形状相同

                    ndarray的运算为对数据列表中数据的运算,例如:a + 1 为[1+1,2+1,3+1……]

                    两个ndarray的运算为,两个列表对应位置的数据进行运算,例如:a + b 为[ 1+1,2+2,3+3 ……]

                    例:

                        1.a中小于5的偶数:

                            a[(a<5) & (a%2==0)]

                            注意: 因为运算级的问题,小括号不能省略

                        2.a中小于5的数字和偶数

                            a[(a<5) | (a%2==0)]

                             注意: 因为运算级的问题,小括号不能省略

    ndarray切片

             a = np.arange(15).reshape(3,5)

            b = a[行起点:终点,列起点:终点]

                注意:此处的切片不会复制数组(python中的会),即a,b指向同一个数组,b[0][0]修改后,a中数据也会变化(等同于浅拷贝)

                若想要深拷贝,需要用 b =  a[行起点:终点,列起点:终点].copy()

常用属性:

        1.T        数组的转置(对高维数组而言)

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

In []: num_np

Out[]:array([[1, 2, 3]

                        [4, 5, 6]])

In []: num_np.T

Out[]:array([[1, 4],

                        [2, 5],

                        [3, 6]])

        2.dtype       

                 数组元素的数据类型

                    dtype:bool_(True or False), int(8,16,32,64), uint(8,16,32,64), float(16,32,64)

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

In []: num_np.dtype

Out[]: dtype('int32')

                转换数据类型:

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

num_np = num_np.astype("float32")

In []: num_np

Out[]: array([1., 2., 3., 4., 5.], dtype=float32)

 3.size        数组元素的个数

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

In []: num_np.size

Out[]: 5

    4.ndim        数组的维度

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

In []: num_np.ndim  

Out[]: 2  

    5.shape        数组的维度大小(以元组形式表示数组的形状)

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

In []: num_np.shape  

Out[]: (2, 3)   # 二维数组为平面 (2行,3列)

            改变数组形状:需保证元素个数前后相同

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

        num_np.reshape( np.shape)

通用函数

        四舍五入: np.round( a )   或者 np.rint(a)

        绝对值:abs

        开根号:sqrt

        向上取整:ceil

        向下取整:floor

        向0取整:trunc

        分开整数和小数部分:a,b = np.modf(a) a接收小数部分,b接受整数部分

        判断是否不是有效数据:isnan(不是数字)

        取出有效数据 : a[~np.isnan[a]

        判断是否为无限大:isinf(无限大)

        取两个数组对应位置最大值:maximum(a,b) 取对应位置大的数组成数组

        取两个数组对应位置最小值:minimum(a,b) 取对应位置小的数组成数组

        求和:sum

        累计求和:cumsum  [1,2,3] --> [1,1+2,1+2+3]

        求平均:mean

        求标准差:std

        求方差:var

        求最小值:min

        求最大值:max

        求最小值索引:argmin

        求最大值索引:argmax

随机数函数

        给定形状生成(0-1)之间的数:np.random.rand(个数或shape)

        给定形状生成给定取值范围随机整数:np.random.randint(下界,上界,个数或shape)

        给定形状产生随机选择:np.random.choice([1,2,3],(2,3))

        打乱列表:np.random.shuffle( ndarray )

        给定形状产生随机整数:np.random.uniform(下界,上界,个数或shape)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • numpy [TOC] 简介 标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于...
    zjlearn阅读 4,123评论 0 2
  • numpy numpy是一个开源的python科学计算库,使用ndarray对象处理任意维度的数组 1.ndarr...
    卅清阅读 3,751评论 0 1
  • 什么是NumPy? NumPy是Python中科学计算的基础软件包。它是一个提供多了维数组对象,多种派生对象(如:...
    iOSDevLog阅读 8,019评论 0 0
  • Numpy的组成与功能 Numpy(Numeric Python)可以被理解为一个用python实现的科学计算包,...
    不做大哥好多年阅读 9,893评论 0 10
  • 介绍 NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和...
    喔蕾喔蕾喔蕾蕾蕾阅读 5,733评论 0 5