Numpy读取本地数据和索引

本文介绍了如何使用Numpy库读取CSV文件,包括使用`np.loadtxt`函数,以及探讨了Numpy中的转置、索引和切片操作。详细讲解了行、列、点的索引方式,并提到了布尔索引和三元运算符在数据处理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Numpy读取数据:

CSV:Comma-Separated Value,逗号分隔值文件

显示:表格状态

源文件:换行和逗号分隔行列的格式化文本,每一行的数据表示一条记录。


numpy读取csv文件:

np.loadtxt

loadtxt(fname, dtype=float, comments='#', delimiter=None,
            converters=None, skiprows=0, usecols=None, unpack=False,
            ndmin=0, encoding='bytes', max_rows=None, *, like=None):
fname文件名(文件的相对路径或者绝对路径)
dtypedata-type指定读取后的数据类型(对较大的数会用科学计数法表示)
comments跳过文件中指定参数开头的行(即不读取)
delimiter指定文件中的分隔符
skiprows跳过的行数
usecols选择哪几列
unpack结果是否转置

numpy中的转置:

t = np.arange(24).reshape(4, 6)
print(t)
print("*"*25)

#T转置
t1 = t.T
print(t1)
print("*"*25)

#transpose
t2 = t.transpose()
print(t2)
print("*"*25)

#swapaxes调增轴的顺序
t3 = t.swapaxes(1, 0)
print(t3)
[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]
 [12 13 14 15 16 17]
 [18 19 20 21 22 23]]
*************************
[[ 0  6 12 18]
 [ 1  7 13 19]
 [ 2  8 14 20]
 [ 3  9 15 21]
 [ 4 10 16 22]
 [ 5 11 17 23]]

numpy中的索引和切片

行:

#取行
print(t[2])
#取连续多行
print(t[2:])
#取不连续的多行 多加一个方括号
print(t[[0, 2]])

[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]
 [12 13 14 15 16 17]
 [18 19 20 21 22 23]]
*************************
[12 13 14 15 16 17]
*************************
[[12 13 14 15 16 17]
 [18 19 20 21 22 23]]
*************************
[[ 0  1  2  3  4  5]
 [12 13 14 15 16 17]]

列:

#取列
print(t[:, 1])
#取连续多列
print(t[:, 1:])
#取不连续的多列
print(t[:,[0, 2, 4]])
#取多行和多列,第三行,第四列的值
print(t[2, 3])

[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]
 [12 13 14 15 16 17]
 [18 19 20 21 22 23]]
*************************
[ 1  7 13 19]
*************************
[[ 1  2  3  4  5]
 [ 7  8  9 10 11]
 [13 14 15 16 17]
 [19 20 21 22 23]]
*************************
[[ 0  2  4]
 [ 6  8 10]
 [12 14 16]
 [18 20 22]]

点:

#取多行和多列,第三行,第四列的值
print(t[2, 3])
# 取多行多列, 2-4行 1-3列 取的是交叉点的数据
print(t[1:4,0:3])
#取多个不相邻的点
print(t[[0, 1, 3, 3],[0, 2, 1, 2]])  #(0, 0), (1, 2), (3, 1), (3, 2)

[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]
 [12 13 14 15 16 17]
 [18 19 20 21 22 23]]
*************************
15
*************************
[[ 6  7  8]
 [12 13 14]
 [18 19 20]]
*************************
[ 0  8 19 20]

Numpy布尔索引:

#将小于10的值替换成100
print(t[t < 3])
t[t < 3] = 100
print(t)

[ 4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]

[[100 100 100   3   4   5]
 [  6   7   8   9  10  11]
 [ 12  13  14  15  16  17]
 [ 18  19  20  21  22  23]]

Numpy三元运算符:

np.where(t < 10, 0, 99)
print(np.where(t < 10, 0, 99)) // 小于10的为0, 否则为99

Numpy clip(裁剪):

print(t.clip(3, 10))  // 小于3的数全部为3, 大于10的数全部为10


[[ 3  3  3  3  4  5]
 [ 6  7  8  9 10 10]
 [10 10 10 10 10 10]
 [10 10 10 10 10 10]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值