python数据分析第三天

编程入门 行业动态 更新时间:2024-10-26 06:27:00

python<a href=https://www.elefans.com/category/jswz/34/1771445.html style=数据分析第三天"/>

python数据分析第三天

numpy 热身练习

import numpy as np
import pandas as pd
import matplotlib.pyplot as pltarray1 = np.array([42, 45, 62, 56, 35, 79, 67, 74, 30, 28, 54])
array2 = np.array([65, 36, 123, 25, 45, 32, 26, 78, 57, 51, 34])
array3 = np.array([82, 36, 21, 23, 25, 43, 52, 59, 60, 76, 95])print('均值', array1.mean())
print('方差', array1.var())
array3[0], array3[1], array3[-2]
array3[[0, 1, -2]]
array3.take([0, 1, -2])
array3[array3 > 50]
array3[(array3 > 50) | (array3 % 2 == 0)]# 在末尾添加元素
np.append(array3, 1000)
# 在特定位置插入元素
np.insert(array3, 0, 1000)# 数组与标量运算
array4 = np.array([[1, 1, 1], [2, 3, 4], [5, 5, 6]])
array4
array4 + 5
array4 * 5
array4 / 5
array4 ** 5# 数组与数组的运算
array5 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array6 = np.array([[1, 1, 1], [2, 2, 2], [3, 3, 3]])
array5 + array6
array5 ** array6"""
当两个数组形状不一致时,如果两个数组的后缘维度(shape属性从后往前看)相同或者其中一个的后缘维度为1,那么这个时候可以通过广播机制让两个数组的形状趋于一致,这种情况是可以进行运算的;如果不能应用广播机制,那么两个数组没有办法进行运算。
"""
array7 = np.array([4, 4, 4])
array7
array5 + array7# 判断空值
array10 = np.array([1, 2, 3, np.nan, 4, np.nan, np.inf])
# 判断空值
np.isnan(array10)
# 判断无穷大值
np.isinf(array10)# 正弦和余弦函数
x = np.linspace(-2 * np.pi, 2 * np.pi, 60)
y1, y2 = np.sin(x),np.cos(x)
plt.figure(figsize=(8, 4))
plt.plot(x, y1, color='#0000ff', marker='x')
plt.plot(x, y2, color='coral', marker='o')# 判断两个数组是否相等
a = np.array([0.1, 0.2, 0.3])
b = np.array([0.1, 0.2, 0.3000001])
a == b
np.all(a == b) # false
# 判断每个元素是否在可容忍误差范围内相近
np.allclose(a, b)array11 = np.array([1, 4, 9])
array12 = np.array([2, 3, 5])
# 比较两个数组对应的元素取大的
np.maximum(array11, array12)
# 比较两个数组对应的元素取小的
np.minimum(array11, array12)v1 = np.array([3, 1])
v2 = np.array([-1, 2])
v1 + v2
# 通过内积计算向量夹角的余弦值
np.inner(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2))
# 内积
np.inner(v1, v2)
# 点积(欧几里得空间的内积)
np.dot(v1, v2)
# 叉积(叉积的绝对值是以向量为邻边构成的平行四边形的面积)
np.cross(v1, v2)# 常用函数array13 = np.array([12, 13, 12, 15, 20, 20, 17])
array13# 去重
np.unique(array13)array5
array6
# 堆叠和拼接
np.hstack((array5, array6))
np.vstack((array5, array6))
np.stack((array5, array6), axis=0)
np.stack((array5, array6), axis=1)
np.concatenate((array5, array6))# 获取非零元素的索引
np.argwhere(array5)array14 = np.arange(1, 10)
array14# 抽取元素
np.extract(array14 % 3 == 0, array14)
np.select([array14 < 3, array14 > 5], [array14, array14 ** 2])np.where(array14 < 5, array14, array14 * 10)# 翻转 可以指定axis轴翻转
np.flip(array5)# 定义斐波那契数列的迭代器
def fib(counts):a, b = 0, 1for _ in range(counts):a, b = b, a + byield aiter_obj = fib(20)
iter_obj# 通过迭代器创建数组
array15 = np.fromiter(iter_obj, dtype=np.int64)
array15# 通过重复指定的元素创建数组
array16 = np.repeat([3, 4], 10)
array16"""
array([3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4])
"""array17 = np.repeat([[3, 4]], 3, axis=0)
array17"""
array([[3, 4],[3, 4],[3, 4]])
"""array18 = np.repeat([[3, 4]], [2, 3], axis=1)
array18"""
array([[3, 3, 4, 4, 4]])
"""# 滚动np.roll(array14, 3)"""
array([7, 8, 9, 1, 2, 3, 4, 5, 6])
"""np.roll(array14, -3)
"""
array([4, 5, 6, 7, 8, 9, 1, 2, 3])
"""# 调整大小  # 不够的元素会从前面取一个来补齐
array19 = np.random.randint(60, 101, 15)
array20 = np.resize(array19, (4, 4))
array20# 替换(原地替换,不返回新的数组对象)
np.place(array20, array20 < 80, 59)# 创建矩阵对象
m1 = np.matrix(array5)
m1# 矩阵的转置
m1.T# 计算行列式的值
np.linalg.det(m1)# 获取逆矩阵
m1.Im2 = np.matrix('1 1 1; 2 2 2; 3 3 3')
m2# 求矩阵的行列式值
np.linalg.det(m2)# 获取矩阵对应的二维数组
m2.A# 获取矩阵对应的一维数组
m2.A1# 用二维数组表示矩阵
m3 = np.array([[1, 0, 2], [-1, 3, 1]])
m4 = np.array([[3, 1], [2, 1], [1, 0]])# 矩阵的乘法运算
m5 = m3 @ m4"""
array([[5, 1],[4, 2]])
"""# 求逆矩阵
np.linalg.inv(m5)

更多推荐

python数据分析第三天

本文发布于:2024-02-26 08:41:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1701895.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!