NumPy科学计算库

NumPy科学计算库

介绍与安装

NumPy(Numerical Python)是Python的一种开源的数值计算扩展。提供多维数组对象,各种派生对象(如掩码数组和矩阵),这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nestedlist structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。

  • 几乎所有从事Python工作的数据分析师都利用NumPy的强大功能。
    • 强大的N维数组
    • 成熟的广播功能
    • 用于整合C/C++和Fortran代码的工具包
    • NumPy提供了全面的数学功能、随机数生成器和线性代数功能

安装Python库

第一种方式:

pip install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

第二种方式:
直接安装anaconda 下载链接
注意:Add Path!!! 添加一下环境变量~
在这里插入图片描述
启动终端

Windows----> 快捷键:win + R ----->输入:cmd回车------>命令行出来

启动jupyter

进入终端输入指令:jupyter notebook

在哪里启动jupyter启动,浏览器上的目录,对应哪里,windows默认路径是:C:\Users\xxx
修改默认路径方式:jupyter notebook --generate-config
在这里插入图片描述
打开jupyter_notebook_config.py,修改c.ServerApp.notebook_dir或c.NotebookApp.notebook_dir配置并保存
在这里插入图片描述
注意文件路径分隔符使用‘\’
在这里插入图片描述

第一部分 基本操作

第一节 数组创建

创建数组的最简单的方法就是使用array函数,将Python下的list转换为ndarray。

import numpy as np
l = [1,3,5,7,9] # 列表
arr = np.array(l) # 将列表转换为NumPy数组
arr # 数据一样,NumPy数组的方法,功能更加强大
# 输出为 array([1, 3, 5, 7, 9])
arr[[1,2]] #支持多个索引取值
#array([2, 3])
cond = arr >= 3
#array([False, False,  True,  True,  True])

我们可以利用np中的一些内置函数来创建数组,比如我们创建全0的数组,也可以创建全1数组,全是其他数字的数组,或者等差数列数组,正态分布数组,随机数。

import numpy as np
arr1 = np.ones(10) # 输出为:array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
arr2 = np.zeros(10) # 输出为: array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
arr3 = np.full(shape = [2,3],fill_value=2.718)
# 输出为:
# array([[2.718, 2.718, 2.718],
# [2.718, 2.718, 2.718]])

arr4 = np.arange(start = 0,stop = 20,step = 2)
# 等差数列 输出为:array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18])

arr5 = np.linspace(start =0,stop = 9,num = 10)
# 等差数列 输出为:array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])

arr6 = np.random.randint(0,100,size = 10)
# int随机数 输出为:array([ 4, 8, 79, 62, 34, 35, 2, 65, 47, 18])

arr7 = np.random.randn(5)
# 正态分布 输出为:array([ 0.57807872, 0.37922855, 2.37936837, -0.28688769,0.2882854 ])

arr8 = np.random.random(size = 5)
# float 随机数 输出为:array([0.59646412, 0.37960586, 0.38077327, 0.76983539,0.22689201])

np.set_printoptions(suppress=True) 
arr1 = np.logspace(0, 10, base = 2, num = 11) #等比数列
arr1
#array([   1.,    2.,    4.,    8.,   16.,   32.,   64.,  128.,  256., 512., 1024.])

arr2 = np.random.randint(0, 10, size=(3,4)) #二维数组
arr2
'''array([[7, 5, 3, 9],
      	  [0, 8, 7, 7],
       	  [3, 9, 2, 3]])'''
arr3 = np.random.randint(0, 10, size=(2,3,4)) #三维数组
arr3  
'''array([[[8, 2, 0, 0],
           [0, 6, 2, 1],
           [7, 1, 0, 2]],

        [[2, 2, 9, 4],
           [3, 5, 9, 5],
           [8, 1, 8, 1]]])'''     	 

第二节 查看操作

  • jupyter扩展插件(可以不安装)
    • pip install jupyter_contrib_nbextensions -i https://pypi.tuna.tsinghua.edu.cn/simple
    • pip install jupyter_nbextensions_configurator -i https://pypi.tuna.tsinghua.edu.cn/simple
    • jupyter contrib nbextension install --user
    • jupyter nbextensions_configurator enable --user
    • 退出,重新进入jupyter notebook就可以了

anaconda安装插件

conda install -c 镜像源 conda-forge jupyter_contrib_nbextensions

conda install -c 镜像源 conda-forge jupyter_nbextensions_configurator

在这里插入图片描述

NumPy的数组类称为ndarray,也被称为别名 array。请注意,numpy.array这与标准Python库类不同array.array,后者仅处理一维数组且功能较少。ndarray对象的重要属性是

1.2.1 数组的轴数、维度
import numpy as np
arr = np.random.randint(0,100,size = (3,4,5))
arr.ndim #维度 输出 3
1.2.2 数组尺寸形状
import numpy as np
arr = np.random.randint(0,100,size = (3,4,5))
arr.shape # 输出 (3,4,5)
1.2.3 数组元素的总数
import numpy as np
arr = np.random.randint(0,100,size = (3,4,5))
arr.size # 输出 3*4*5 = 60
1.2.4 数据类型
import numpy as np
arr = np.random.randint(0,100,size = (3,4,5))
arr.dtype # 输出 dtype('int64')
1.2.5 数组中每个元素的大小(以字节为单位)
import numpy as np
arr = np.random.randint(0,100,size = (3,4,5))
arr.itemsize #输出是 8 ,因为数据类型是int64,64位,一个字节是8位,所以64/8 = 8

第三节 文件IO操作

1.3.1 保存数组

save方法保存ndarray到一个npy文件,也可以使用savez将多个array保存到一个.npz文件中

x = np.random.randn(5)
y = np.arange(0,10,1)
#save方法可以存一个ndarray
np.save("x_arr",x)
#如果要存多个数组,要是用savez方法,保存时以key-value形式保存,key任意(xarr、yarr)
np.savez("some_array.npz",xarr = x,yarr=y)
1.3.2 读取

load方法来读取存储的数组,如果是.npz文件的话,读取之后相当于形成了一个key-value类型的变量,通过保存时定义的key来获取相应的array

np.load('x_arr.npy') # 直接加载
# 通过key获取保存的数组数据
np.load('some_array.npz')['yarr']
1.3.3 读写csv、txt文件
arr = np.random.randint(0,10,size = (3,4))
#储存数组到txt文件
np.savetxt("arr.csv",arr,delimiter=',') # 文件后缀是txt也是一样的
#读取txt文件,delimiter为分隔符,dtype为数据类型
np.loadtxt("arr.csv",delimiter=',',dtype=np.int32)

第二部分 数据类型

ndarray的数据类型:

  • int: int8(-128~127)、uint8(无符号0-255)、int16、int32、int64
  • float: float16、float32、float64
  • str
array创建时,指定
import numpy as np
np.array(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值