Python数据分析之numpy

前言

在数据处理中,我们肯定离不开矩阵计算。那么在Python中如何操作矩阵呢?
那就有请今天的主角——numpy

前提

需要在你使用的Python解释器上,安装numpy包。
(1)Win + R
Python数据分析之numpy_第1张图片
(2)然后在Windows终端中输入如下命令,回车即可。

pip install numpy

Python数据分析之numpy_第2张图片

使用

1.numpy的属性

# coding:utf-8
import numpy as np
"""
    numpy的属性
"""

# 将列表转化成一个numpy的矩阵
array = np.array([[1, 2, 3],
                  [4, 5, 6]])
# 输出矩阵
print(array)
# 输出矩阵的维数
print("dim", array.ndim)
# 输出矩阵形状
print("shape", array.shape)
# 输出矩阵尺寸(元素总个数)
print("size", array.size)

Python数据分析之numpy_第3张图片

2.numpy中的创建array

(1)矩阵和列表的区别

# coding:utf-8
import numpy as np

"""
    输出矩阵的各种形式!!!!
"""

#   矩阵输出出来,中间没有逗号;
#     而列表打印出来会有逗号
a_list = [1, 2, 3]
print(a_list)
a_np_array = np.array([1, 2, 3])
print(a_np_array)

Python数据分析之numpy_第4张图片

(2)设定矩阵中数值的类型

# dtype是用来设定矩阵中数值的数据类型
a = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.int64)
print(a.dtype)
print(a)

Python数据分析之numpy_第5张图片

(3)生成规定形状的、元素都为0的矩阵

# 生成3行4列的零矩阵
b = np.zeros((3, 4))
print(b)

Python数据分析之numpy_第6张图片

(4)生成规定形状的、元素都为1的矩阵

# 生成数值全部是1的矩阵
c = np.ones((2,4), dtype=np.int32)
print(c)

Python数据分析之numpy_第7张图片

(5)生成规定形状的、元素都为empty(实际元素都接近于0)的矩阵

# # 输出empty的矩阵
d = np.empty((3,4))
print(d)

Python数据分析之numpy_第8张图片

(6)生成顺序数值的矩阵

# 输出顺序的矩阵,生成数据类比range; 从10到20,左闭右开,步长为2
e = np.arange(10, 20, 2)
print(e)

Python数据分析之numpy_第9张图片

(7)修改矩阵形状

# 输出顺序的矩阵,按顺序以三行四列的格式进行输出
f = np.arange(12).reshape(3, 4)
print(f)

Python数据分析之numpy_第10张图片

(8)按规定生成“线段”数值的矩阵

# 输出线段,1是起始值,10是终止值,6是生成数值个数,从1到10生成6个数,并且他们之间是等距的
# 自动匹配步长
g = np.linspace(1, 10, 6).reshape(2, 3)
print(g)

Python数据分析之numpy_第11张图片

3.numpy的基础运算

(1)矩阵减法(对应元素相减)

# coding:utf-8
import random

import numpy as np
"""
    numpy的基础运算
"""

a = np.array([10, 20, 30, 40])
b = np.arange(4)
print("a矩阵", a)
print("b矩阵", b)
# 矩阵减法
c = a - b
print("c矩阵", c)

Python数据分析之numpy_第12张图片

(2)矩阵加法(对应元素相加)

# 矩阵加法
d = a + b
print("d矩阵", d)

Python数据分析之numpy_第13张图片

(3)矩阵数值平方运算

# 进行平方
e = b**2
print("e矩阵", e)

Python数据分析之numpy_第14张图片

(4)矩阵各个元素求三角函数

# 调用numpy中的三角函数, sin ,cos ,tan
f = np.sin(a)
print(f)

Python数据分析之numpy_第15张图片

(5)判断矩阵中哪些值是小于某个数的

# 判断矩阵中哪些值是小于3的
# 小于号可以换成其他,比如==,>
print(b)
print(b<3)

Python数据分析之numpy_第16张图片

(6)矩阵之间数值逐个相乘

g = np.array([[1, 1],
              [0, 1]])
h = np.arange(4).reshape((2,2))

print(g)
print(h)

# 每个元素挨个相乘
i = g * h
print(i)

Python数据分析之numpy_第17张图片

(6)矩阵乘(线性代数中的矩阵乘)

# 矩阵相乘
j = np.dot(g, h)
print(j)

# 矩阵相乘的另一种形式
k = g.dot(h)
print(k)

Python数据分析之numpy_第18张图片

(7)生成规定形状的随机数矩阵

# 生成随机数矩阵,(2,4)表示矩阵形状,元素值的范围是0~1
l = np.random.random((2,4))
print(l)

Python数据分析之numpy_第19张图片

(8)矩阵中所有元素求和、求最大值、求最小值

# 对矩阵中的数值进行求和、求最大值、求最小值
# 矩阵中所有元素进行求和
print(np.sum(l))
# 矩阵中的最大值
print(np.max(l))
# 矩阵中的最小值
print(np.min(l))

Python数据分析之numpy_第20张图片

(9)对矩阵中指定行和列进行求和、求最大值、求最小值

# 对指定行和列进行求和、求最大值、求最小值
# 其中axis参数值为0时,代表列;参数值为1时,代表行
print(np.sum(l, axis=1))
print(np.max(l, axis=0))
print(np.min(l, axis=1))

Python数据分析之numpy_第21张图片

(10)求矩阵中最小值和最大值的索引

# coding:utf-8
import numpy as np
"""
    numpy中的运算
"""

# 生成顺序数值,并设定为三行四列
A = np.arange(2, 14).reshape(3, 4)
print(A)
# 输出矩阵中数值最小的那个值所在的索引
print(np.argmin(A))
# 最大值对应的索引
print(np.argmax(A))

Python数据分析之numpy_第22张图片

(11)求矩阵中元素的平均数和中位数

# 输出矩阵中的平均数
print(np.mean(A))

# 另外几种形式
print(A.mean())
print(np.average(A))
# 输出矩阵中的中位数
print(np.median(A))

Python数据分析之numpy_第23张图片

(12)矩阵中前几项的累计

# 矩阵中前几项的累计
print(np.cumsum(A))

Python数据分析之numpy_第24张图片

(13)矩阵中元素后一项与前一项的差值

# 矩阵数值之间,每两个数值之间的差值
print(np.diff(A))

Python数据分析之numpy_第25张图片

(14)以行数组和列数组,输出矩阵中非0数值

# 以行数组和列数组,输出矩阵中非0数值
print(np.nonzero(A))

Python数据分析之numpy_第26张图片

(15)对矩阵进行逐行排序

B = np.array([[5, 9, 2],
              [1, 0, 7]])
print(B)
# 使用sort对矩阵数值进行 逐行排序
print(np.sort(B))

Python数据分析之numpy_第27张图片

(16)对矩阵进行转置

# 对矩阵进行转置
print(np.transpose(A))
print(A.T)

Python数据分析之numpy_第28张图片

(17)矩阵数值的“截断”

# 矩阵中小于5的值全部变成5;大于9的值全部变成9,位于5到9之间的数值,保持不变
print(np.clip(A, 5, 9))

Python数据分析之numpy_第29张图片

(18)对矩阵中行元素求平均、对列元素求平均

# 对行算平均值,对列算平均值
# 参数为0是对行算平均值,参数为1是对列算平均值
print(np.mean(A, axis=0)) # 对列
print(np.mean(A, axis=1)) # 对行

Python数据分析之numpy_第30张图片

你可能感兴趣的:(Python学习,numpy,python,人工智能)