一.使用NumPy库来创建和操作数组,包括设置数据类型、转换数据类型以及处理小数等
# coding=utf-8
import numpy as np
import random
# 使用numpy生成数组
t1 = np.array([1, 2, 3]) # 创建一个包含整数1, 2, 3的数组
print(t1)
print(type(t1)) # 打印数组类型
t2 = np.array(range(10)) # 创建一个包含从0到9的整数的数组
print(t2)
print(type(t2)) # 打印数组类型
t3 = np.arange(4, 10, 2) # 创建一个从4开始到10(不包括10),步长为2的数组
print(t3)
print(type(t3)) # 打印数组类型
print(t3.dtype) # 打印数组元素的数据类型
print('*' * 30)
# numpy中的数据类型
# t4 = np.array(range(1, 4), dtype=float)
# t4 = np.array(range(1, 4), dtype='float32')
t4 = np.array(range(1, 4), dtype='i1') # 创建一个包含1到3的整数的数组,数据类型为int8
print(t4)
print(t4.dtype) # 打印数组元素的数据类型
# numpy中的bool类型
t5 = np.array([1, 2, 0, 1, 0], dtype=bool) # 创建一个包含布尔值的数组
print(t5)
print(t5.dtype) # 打印数组元素的数据类型
# 调整数据类型
t6 = t5.astype('int32') # 将t5数组的数据类型转换为int32
print(t6)
print(t6.dtype) # 打印数组元素的数据类型
# numpy中的小数
t7 = np.array([random.random() for i in range(10)]) # 创建一个包含10个随机小数的数组
# t7 = np.array([random.randint(1, 100) for i in range(10)])
print(t7)
print(t7.dtype) # 打印数组元素的数据类型
t8 = np.round(t7, 2) # 对t7数组中的每个元素保留两位小数
print(t8)
这段代码首先导入了NumPy库和random模块。然后,它演示了如何使用NumPy创建不同类型的数组,包括整数数组、步长为2的数组、不同数据类型的数组以及布尔数组。接着,它演示了如何调整数组的数据类型,以及如何处理小数数组。
二.使用NumPy的loadtxt
函数来加载CSV文件中的数据
这段代码使用NumPy的loadtxt
函数来加载CSV文件中的数据,并演示了如何从加载的数据中提取不同行、列或单元格的值。
# coding=utf-8
import numpy as np
# 定义CSV文件的路径
us_file_path = './youtube_video_data/US_video_data_numbers.csv'
uk_file_path = './youtube_video_data/GB_video_data_numbers.csv'
# 使用numpy的loadtxt函数加载CSV文件,指定分隔符为逗号,数据类型为整数
# t1=np.loadtxt(us_file_path,delimiter=",",dtype=int,unpack=True)
t2 = np.loadtxt(us_file_path, delimiter=",", dtype=int)
# print(t1)
print(t2) # 打印加载的数据
print('*' * 100)
# 取一行
# print(t2[2])
# 取连续的多行
# print(t2[2:])
# 取不连续的多行
# print(t2[[2,8,10]])
# 取行
# print(t2[1,:]) # 取第二行
# print(t2[2:,:]) # 取从第三行开始的所有行
# print(t2[[2,10,3],:]) # 取第二行、第十行和第四行
# 取列
# print(t2[:,0]) # 取第一列
# 取连续的多列
# print(t2[:,2:]) # 取从第三列开始的所有列
# 取不连续的多列
# print(t2[:,[0,2]]) # 取第一列和第三列
# 取单行单列的值,取第3行,第4列的值
# a = t2[2, 3]
# print(a)
# print(type(a))
# 取多行多列的值,取第3行到第5行,第2列到第4列的值
# b = t2[2:5, 1:4]
# print(b)
# 取多个不相邻的点
# 选出来的结果是(0,0) (2,1) (2,3)
c = t2[[0, 2, 2], [0, 1, 3]]
print(c) # 打印选中的值
这段代码首先加载了CSV文件中的数据,并打印了加载的数据。然后,它演示了如何从加载的数据中提取行、列或单元格的值。每一步都使用了NumPy的切片和索引功能来实现。
以下为上方代码涉及的csv文件
youtube_video_data文件大小:537.7 K|https://wwt.lanzoum.com/iGp7c1o5tu0f