读取文件
# 读取数据
us_file_path = "F:/code\Study/aiLearning/youtube_video_data/US_video_data_numbers.csv"
uk_file_path = "F:/code\Study/aiLearning/youtube_video_data/GB_video_data_numbers.csv"
t1 = np.loadtxt(us_file_path, delimiter=',', dtype='int')
t2 = np.loadtxt(us_file_path, delimiter=',', dtype='int', unpack=True)
print(t1)
print(t2)
import numpy as np
t5 = np.arange(24).reshape(4, 6)
print(t5)
# 计算
# 广播
# 数组与数字想加减乘除,数组中每一元素都进行相同的计算
# nan 是0/0 inf 是一个数字/0
t6 = t5 + 2
print(t6)
# 数组与数组相加减乘除,对应元素相加减乘除
t7 = t5 + t6
print(t7)
# 广播原则:
# 入股两个数组的后缘维度 即从末尾开始算起的维度的轴长度相符或者
# 其中一方的长度唯一,则认为他们是广播兼容的,广播会在缺失和长度为1的维度上进行
t8 = np.arange(6);
t9 = t5 + t8
print(t9)
# 二维数组 0 表示行 1 表示列
# 2行5列
t10 = np.arange(0, 10).reshape((2, 5))
print(t10)
# 读取数据
'''
第一个参数为文件路径
dtype为数据格式
delimiter为数据分隔符,如csv文件为,分割;
skiprows 为跳过的前几行;
useclos 为读取指定行
unpack 转置:行列发生转换 为true转置;为false不转置
'''
# np.loadtxt('C:/ceshi.csv', dtype=np.float, delimiter=',', skiprows='0', usecols=0, unpack=True)
# 数组转置
t11 = np.arange(24).reshape(4, 6)
print(t11)
# 第一种方式 transpose
t12 = t11.transpose()
print(t12)
# 第二种方式 行列交换 .swapaxes
t13 = t11.swapaxes(1, 0)
print(t13)
# 第三种方式 .T
t14 = t11.T
print(t14)
# 数据处理
# 取行 取第三行数据
print(t11[2])
# 取连续的多行
print(t11[2:])
# 取 不连续的多行
print(t11[[0, 2, 3]])
# 取列
print(t11[:, 0])
# 取多列 2列以后连续的多列
print(t11[:, 2:])
# 取不连续的多列
print(t11[:, [2, 4, 5]])
# 取2-4行 1-3列
print(t11[1:4, 0:3])
# 下面这种方式取的是 1,3位置的值,和0,2 位置的值,所以只有两个值
print(t11[[1, 3], [0, 2]])
# 数值修改
t11[0, 0] = 22
print(t11)
# t11中小于10的值赋值为3
print(t11 < 10)
print([t11 < 10])
print(t11[t11 < 10])
t11[t11 < 10] = 3
print(t11)
# 把小于10的值替换为0,否则替换为100
print(np.where(t11 < 10, 0, 100))
# 把小于10的值替换为10,把大于20的值替换为20
print(t11.clip(10, 20))
#nan 0/0 数据缺失,相当于null,float类型
#两个nan是不相等的
np.isnan(t11)
print(np.isnan(t11))
#sum
#所有数据之和
print(np.sum(t11))
#列之和
print(np.sum(t11,axis=0))
#行之和
print(np.sum(t11,axis=1))
#均值
np.mean(t11)
#中值
np.median(t11)
#最大值
np.max(t11)
t11.max()
#最小值
np.min(t11)
t11.min()
#极差 最大值与最小值之差
np.ptp(t11)
#标准差
t11.std()
#inf inf表示正无穷,-inf表示负无穷