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 | 文件名(文件的相对路径或者绝对路径) |
dtype | data-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]]