NumPy库基本知识点

本文介绍了如何使用NumPy库创建和操作数组,包括设置数据类型、转换数据类型以及处理小数,同时展示了如何使用loadtxt函数加载CSV文件并提取数据。
摘要由CSDN通过智能技术生成

一.使用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|icon-default.png?t=N7T8https://wwt.lanzoum.com/iGp7c1o5tu0f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NJU_AI_NB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值