数据分析基础
数组的概念

数据处理的一般流程
数据收集-数据预处理-数据处理-数据展示

数据收集的方法

  1. 网络爬虫
  2. 公开数据集
  3. 其它途径收集的数据

数据预处理方法
4. 归一化
5. 二值化
6. 维度变换
7. 去重
8. 无效数据过滤

数据处理方法
9. 数据排序
10. 数据查找
11. 数据统计分析

数据展示方法

  1. 列表
  2. 图表
  3. 动态交互图形

安装Numpy

pip install numpy

新建一个Python文件

import numpy as np  # 导入numpy模块

导入Numpy模块
as np表示在接下来的程序里用np表示numpy
import 某某模块 as 一个缩写

Numpy的基础类型——ndarray
创建一个ndarray类型的数组

data = np.array([1,2,3,4,5])  # 创建一个ndarray类型的数组

np.array()里直接填一个由数字组成的列表

python_list = [1,2,3,4,5]  # 把列表存成变量
data = np.array(python_list)  # 创建一个ndarray类型的数组

创建一个二维的ndarray类型的数组

data = np.array([[1,2,3],[4,5,6]])  # 创建一个二维的ndarray类型的数组
data = np.array(
        [
            [1,2,3],
            [4,5,6]
        ])  # 创建一个二维的ndarray类型的数组

判断ndarray的维度

import numpy as np  # 导入numpy模块

data = np.array([[1,2,3],[4,5,6]])  # 创建一个二维的ndarray类型的数组
print(data.ndim)  # 判断ndarray的维度

了解ndarray各维度的长度

import numpy as np  # 导入numpy模块

data = np.array([[1,2,3],[4,5,6]])  # 创建一个二维的ndarray类型的数组
print(data.shape)  # 了解ndarray各维度的长度

创建一个全是0的数组

import numpy as np  # 导入numpy模块

data = np.zeros(10)  # 创建一个全是0的数组
print(data)  # 输出数组

创建一个全是1的二维数组

import numpy as np  # 导入numpy模块

data = np.ones((3,10))  # 注意多维数组的各维度长度要用元组来表示
print(data)  # 输出数组

注意多维数组的各维度长度要用 元组来表示

import numpy as np  # 导入numpy模块

data = np.arange(10)  # 创建一个ndarray类型的数组
print(data[5])  # 获取数组中某个数字(行话:索引)

获取数组中某个数字(行话:索引)

获取二维数组中某个数字(行话:索引)

import numpy as np  # 导入numpy模块

data = np.array([[1,2,3],[4,5,6]])  # 创建一个二维的ndarray类型的数组
print(data[0][1])  # 获取二维数组中某个数字(行话:索引)
print(data[0,1])   # 获取二维数组中某个数字(行话:索引)

获取数组中某几个数字(行话:切片)

import numpy as np  # 导入numpy模块

data = np.arange(10)  # 创建一个ndarray类型的数组
print(data[3:6])  # 获取数组中某几个数字(行话:切片)

注意!切片得到的数据对应的还是原始数据
任何修改都会反映到原始数据上

import numpy as np  # 导入numpy模块

data = np.arange(10)  # 创建一个ndarray类型的数组
data_slice = data[3:6]  # 把切片数据赋予变量
data_slice[2] = 100  # 修改切片数据
print(data)  # !切片得到的数据对应的还是原始数据 任何修改都会反映到原始数据上

输出结果:

[  0   1   2   3   4 100   6   7   8   9]

想要一份副本不影响原始数据?
请用data[3:6].copy()

变换数组的维度

import numpy as np  # 导入numpy模块

data = np.arange(10)  # 创建一个ndarray类型的数组
print(data)  # 输出数组
print(data.reshape((2,5)))  # 变换数组的维度

输出结果:

[0 1 2 3 4 5 6 7 8 9]
[[0 1 2 3 4]
 [5 6 7 8 9]]

矩阵的转置

import numpy as np  # 导入numpy模块

data = np.arange(10)  # 创建一个ndarray类型的数组
print(data.reshape((2,5)).T)  # 变换数组的维度,矩阵的转置

ndarray的运算
对ndarray数组每个元素都求平方根

import numpy as np  # 导入numpy模块

data = np.arange(10)  # 创建一个ndarray类型的数组
print(np.sqrt(data))  # 对ndarray数组每个元素都求平方根

python中两个矩阵求平均 python求矩阵平均值_数据


将两个数组相加

import numpy as np  # 导入numpy模块

data1 = np.array([1,2,3,4,5])  # 创建一个ndarray类型的数组
data2 = np.array([6,7,8,9,10])  # 创建另一个ndarray类型的数组
print(data1 + data2)  # 将两个数组相加

输出结果:

[ 7  9 11 13 15]

将两个数组相加

import numpy as np  # 导入numpy模块

data1 = np.array([1,2,3,4,5])  # 创建一个ndarray类型的数组
data2 = np.array([6,7,8,9,10])  # 创建另一个ndarray类型的数组
print(np.add(data1,data2))  # 将两个数组相加

python中两个矩阵求平均 python求矩阵平均值_数组_02


数学及统计方法:求和

import numpy as np  # 导入numpy模块

data = np.arange(10)  # 创建一个ndarray类型的数组
print(data.sum())  # 数学及统计方法:求和

数学及统计方法:求平均值

import numpy as np  # 导入numpy模块

data = np.arange(10)  # 创建一个ndarray类型的数组
print(data.mean())  # 数学及统计方法:求平均值

数学及统计方法:求标准差

import numpy as np  # 导入numpy模块

data = np.arange(10)  # 创建一个ndarray类型的数组
print(data.std())  # 数学及统计方法:求标准差

数组的排序

import numpy as np  # 导入numpy模块

data = np.array([1,9,5,4,6,3,7,2,8])  # 创建一个ndarray类型的数组
data.sort()  # 数组的排序
print(data)  # 输出数据

ndarray的存取
读取txt文件

import numpy as np  # 导入numpy模块

data = np.genfromtxt('data.txt',delimiter=',')  # 读取txt文件
print(data)  # 输出数据

数组.astype(要转换成的类型)

import numpy as np  # 导入numpy模块

data = np.genfromtxt('data.txt',delimiter=',')  # 读取txt文件
print(data.astype(int))  # 转换数据类型

作业描述
读取文件rating.txt中的的数据并分析
• 共有10000本书,以数字id表示
• 每个用户的打分为1~5
• 每一行数据有3个数字,分别表示用户ID, 书本ID,该用户对该书的打分

# -------------------------------------------------------
# 1 输出rating.txt中所有书本各自的平均得分

import numpy as np  # 导入numpy模块

data = np.genfromtxt('rating.txt', delimiter=',', dtype='float32')  # 读取txt文件
book_data = data.astype(int)  # 转换数据类型
# print(book_data)

rating_sum = np.zeros(10000)  # 创建数组,存各个书籍的总得分
rating_people_count = np.zeros(10000)  # 创建数组,存各个书籍的总评分人数

for rating in book_data[1:]:   # 遍历除第一行以外的数据
    book_id = rating[1] - 1   # 取出书本ID
    rating_sum[book_id] += rating[2]  # 计算各个书籍的总得分
    rating_people_count[book_id] += 1  # 计算各个书籍的总评分人数

rating_scores = rating_sum/rating_people_count  # 计算平均得分

print(f'rating.txt中所有书本各自的平均得分为:{rating_scores}')  # 输出rating.txt中所有书本各自的平均得分