刘刚刚的个人博客

01-numpy的简介及array的创建

创建时间:2020-12-17 12:20:09
更新时间:2020-12-19 22:22:31

numpy是 Python 语言的一个c扩展程序库,支持大量的维度数组与矩阵运算,对数组运算提供大量的数学函数库,对数据的处理有极高的效率,也经常被作为其他数据处理模块的底层模块。

numpy相关博文的开发环境:

  • python 3.6
  • jupyter notebooks

安装

# 安装命令
pip install numpy

# 安装完成后,在jupyter中输入以下命令进行测试
import numpy as np
np.__version__

成功打印出版本号则代表安装成功,接下来就可以正式进入numpy的学习了

image-20201216122148041

tip:

如果运行时,已经使用pip安装但是仍然报以下错误:

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-8c27a98e4621> in <module>
----> 1 import numpy as np
   2 np.__version__

ModuleNotFoundError: No module named 'numpy'

则可以使用以下代码判断python包的引入位置,查看jupyter中使用的python环境位置:

import sys
sys.path

array对象

array对象是numpy的核心对象,可以是一维也可以是多维的,与pyhton的list比较类似,但拥有更好的性能,通常比python执行速度快1-3个数量级,也拥有更多的数据处理函数,不过numpy中array内的元素必须是同一种数据类型。

array对象的创建

array的创建主要包括两种方式:

  • 使用python的list进行创建
  • 使用array提供的函数进行创建,创建的函数主要有:

    arange、ones、zero、empty、full、randn ,除了randn外其他函数均提供有相应的_like方法

1. 使用python的list进行创建

import numpy as np

x = np.array([1,2,3,4,5,6,7,8])
y = np.array([
    [1,2,3,4,5,6,7,8],
    [1,2,3,4,5,6,7,8]
])

打印结果:

image-20201216232247060

2. 使用numpy提供的函数进行创建

  • arange创建数字序列

    # arange([start,] stop[, step,], dtype=None)
    np.arange(10)
    np.arange(2,10)
    np.arange(2, 10, 2)

    image-20201216234105748

  • ones创建值全是1的数组

    # np.ones(shape, dtype=None, order='C')
    
    np.ones(10)
    np.ones((2,3))

    image-20201216234849989

  • ones_like创建与其他数据形状相同,值为0的数组

    # ones_like(a, dtype=float, order='C')
    np.ones_like(x)
    np.ones_like(y)

    image-20201216235120662

  • zero创建全是0的数组

    # np.zeros(shape, dtype=None, order='C')
    np.zeros(10)
    np.zeros((2,4))

    image-20201216235508499

  • zero_like创建形状相同,值全为1的数组

    # np.zeros_like(a, dtype=None)
    
    np.zeros_like(x)
    np.zeros_like(y)

    image-20201216235759182

  • empty创建值为0的数组,

    其中的数据未初始化,可能为随机值

    # empty(shape, dtype=float, order='C')
    np.empty(10)

    image-20201217000730311

  • empty_like

    np.empty_like(y)

    image-20201217000801333

  • full创建指定值的数组

    # np.full(shape, fill_value, dtype=None, order='C')
    
    np.full(10,22)
    np.full((2,4), 33)

    image-20201217000245958

  • full_like

    np.full_like(x, 66)

    image-20201217000359802

  • randn生成随机数的数组

    # randn(d0, d1, ..., dn)
    np.random.randn()
    np.random.randn(3)
    np.random.randn(3,2)
    np.random.randn(3, 2, 4)

    image-20201217001014005

我的名片

昵称:shuta

职业:后台开发(python、php)

邮箱:648949076@qq.com

站点信息

建站时间: 2020/2/19
网站程序: ANTD PRO VUE + TP6.0
晋ICP备18007778号