1.Numpy使用场景

  1. 需要批量处理数据的时候
  2. 机器学习,人工智能这些需要进行海量数据运算处理的地方
  3. 写游戏里面的物体运行逻辑时,经常涉及到矩阵、向量运算
  4. 机器人模拟环境,背后的环境反馈信息,全是靠批量数据算出来的
  5. 任何需要做统计的时候(爬虫爬完了信息后) 画图表之前,要对数据做一轮批量处理
  6. Blah blah

2.Numpy安装【Windows】

  1. win + r 进入控制面板,输入cmd,回车进入终端
  2. npm安装python2 python安装numpy 教程_npm安装python2


  3. npm安装python2 python安装numpy 教程_数据_02

  4. 用pip安装
    在终端输入:pip install numpy回车即可进行安装
    如果是Python3.x版本,用pip3 install numpy进行安装
    检查是否安装成功:
    ①在终端输入python进入python环境
    ②输入import numpy,没有错误提示,则表示安装成功。
  5. npm安装python2 python安装numpy 教程_开发语言_03

3. Numpy array

Numpy array的一大优势就是速度快!

import numpy as np
arrayName = np.array([1,2,3]) #numpy的array和list的查询、更新、删除是相同的,
                                #不同的是array存储的数据是相同类型的,按照顺序存储在内存里,操作array的速度更快  
print(arrayName, type(arrayName)) 
print("arrayName[1]=",arrayName[1])
arrayName[1] = 99  #通过下标修改
print("after modified, arrayName[1]=",arrayName[1])

运行结果:

npm安装python2 python安装numpy 教程_npm安装python2_04

4.数据维度

  1. 创建数据
    np.array()
    array.ndim:返回数据维度
  2. 添加数据
    np.concatenate()
    np.expand_dims()
  3. 合并数据
    np.concatenate()
    np.vstack() #用于二维数据
    np.hstack()
  4. 观察形态
    array.size array.shape

5.数据选取

  1. 单个选取
    array[1]
    array[1,2,3]
    array[1][1]
    array[[1,2]]
  2. 切片划分
    array[:3]
    array[2:4, 1:3]
  3. 条件筛选
    array[array<0]
    np.where(array, array < 0)
import numpy as np
b = np.array([
[1,2,3,4],
[5,6,7,8],
[9,10,11,12],
[13,14,14,15]])


print("b[2]=", b[2]) #查看第二行所有数据(从0列开始)
print("b[2,1]=", b[2,1])#查看第二行第一列的值
#切片,格式:(起始坐标:结束坐标:间隔)左闭右开
print("b[0:4:2]=", b[0:4:2])  #第0行、2行
print("b[0:4:2, 0:2:1]=",b[0:4:2, 0:2:1] ) #第0行、2行,第0列、第2列,逗号表示行列的分隔符

#条件筛选array[ condition,]
# np.where(condition,x,y)当满足condition,将此处的值更改为x,否则改为y
condition = b > 6
print("condition =", condition)
print("b[condition]=", b[condition])
print("np.[condition,1]=", np.where(condition,1,b)) #满足条件的替换为1,不满足条件的不替换

运行结果:

npm安装python2 python安装numpy 教程_npm安装python2_05

6运算

加减乘除
±*/
np.dot()
数据统计分析
np.max() np.min() np.sum() np.prod() np.count()
np.std() np.mean() np.median()
特殊运算符号
np.argmax() np.argmin()
np.ceil() np.floor() np.clip()

import numpy as np
arrayA = np.array([122.2,156.3,723.1])
arrayB = np.array([12,16,1])

#加减乘除操作是直接对array的值进行操作,用列表的名字就可以操作
print("+",arrayA + 0.1)
print("-",arrayA - 0.1)
print("*",arrayA * 0.1)
print("/",arrayA / 0.1)

#点乘积
print("dot",arrayA.dot(arrayB))
print(arrayB)

#最值、求和
print("max", arrayA.max())
print("min", arrayA.min())
print("max_index", arrayA.argmax())
print("min_index", arrayA.argmin())

print("sum", arrayA.sum())
#大小
print("size", arrayA.size)
#平均值
print("mean",arrayA.mean())
#标准差
print("std", arrayA.std())
#上下限截取,低于下限的按照下限处理
print("arrayA.clip(100,200)", arrayA.clip(100,200))

运行结果:

npm安装python2 python安装numpy 教程_npm安装python2_06

7 改变数据形态

  1. 改变形态
    array[np.newaxis, :]
    array.reshape()
    array.ravel(), array.flatten()
    array.transpose()
  2. 合并
    np.column_stack(), np.row_stack()
    np.vstack(), np.hstack(), np.stack()
    np.concatenate()
  3. 拆解
    np.vsplit(), np.hsplit(), np.split()
import numpy as np
arrayA = np.array([1,2,3,4,5,6,7,8]).reshape([2,4])

#增加维度,np.expand_dims(array,axis ),
#原来的维度(2,4),扩展后:
# axis=0 ———>(1,2,4)
# axis=1 ———>(2,1,4)
# axis=2 ———>(2,4,1)
print(np.expand_dims(arrayA,axis =2).shape) #打印(2,4,1)
print(arrayA.shape)
#reshape
print(arrayA.reshape([2,1,4]))  #[层数、行数,列数]
#转置
print(arrayA.shape)
print(arrayA.transpose().shape)
#分割,np.split(array, indices_or_sections, axis)
#indices_or_sections等于整数时,表示均分,是数组时,表示按照

print(np.split(arrayA, indices_or_sections =4 , axis=1))  #分割和维数拓展都是np下的函数
print(np.split(arrayA, indices_or_sections =[1,3] , axis=1))  #在 第一列右边、第三列右边切割

运行结果:

npm安装python2 python安装numpy 教程_python_07