一、轴(axis)
在numpy中可以理解为方向,使用0,1,2...数字表示,对于一个一维数组,只有一个0轴;对于2维数组(shape(2,2)),有0轴和1轴;对于三维数组(shape(2,2,3)),有0,1,2轴
二、numpy读取数据(不经常使用<了解>)
1、读取文件类型
2、读取文件的方法
unpack参数:矩阵转置
现在这里有一个英国和美国各自YouTube多个视频的点击,喜欢,不喜欢,评论数量(["views", "likes", "dislikes", "comment_total"])的csv
数据来源:https://www.kaggle.com/datasnaek/youtube/data
import numpy as np
def myReadData():
"""
读取本地数据
:return: None
"""
gb_file_path = "C:/Users/Lenovo/Desktop/archive/GB_video_data_numbers.csv"
t1 = np.loadtxt(gb_file_path, delimiter=",", dtype="int", skiprows=1)
print(t1)
return None
if __name__ == "__main__":
myReadData()
三、矩阵转置(unpack参数的扩展)
转置也是一种数据变换,对于numpy中的数组来说,就是在对角线方向交换数据,目的也是为了方便去处理数据。
t1.transpose() | 矩阵转置;T是内部的属性,用于实现矩阵转置 | |
t1.T | ||
t1.swapaxes(1, 0) | 矩阵转置(交换轴) | 参数为相互交换位置的两个轴 |
import numpy as np
def myNumPy():
t1 = np.arange(10, 40, dtype=int)
t1 = t1.reshape(5, 6)
print(t1)
print(t1.transpose())
print(t1.T)
print(t1.swapaxes(1,0))
if __name__ == "__main__":
myNumPy()
四、numpy中的索引和切片
对行进行操作:
(1)取一行:
- print(t[行号])
(2)取连续的多行:
- print(t1[行号:])
(3)取不连续的多行:
- print(t1[[行号,....]])
对列进行操作:
(1)取一列:
- print(t1[1,:]) //逗号前是行号,后面代表需要的列,冒号表示所有列都要
(2)取连续的多列
- print(t1[:, 2:])
(3)取不连续的多列
- print(t1[:, [0,2]])
(4)取某行、某列的值
- print(t1[行号, 列号])
(5)取多行、多列
- print(t1[2:5, 1:4]) //取第3行到第5行,第2列到第4列
(6)取多个不相邻的点
- print(t1[[行号1,行号2...], [列号1,列号2....]])
五、numpy中数值的修改
结合上面numpy中的索引用法,最后对数据进行赋值
简单使用:
import numpy as np
def myNumPy():
t1 = np.arange(10, 40, dtype=int)
t1 = t1.reshape(5, 6)
print(t1)
t1[:,2:4] = 0
print(t1)
if __name__ == "__main__":
myNumPy()
1、布尔索引
如:t[t < 10] = 0 找出矩阵中小于10的置零
如果需要把t中小于10的数字替换成0,把大于10的替换成10,该怎么做?
np.where(t < 10, 0, 10)
2、np.clip(裁剪)操作
t.clip(10, 18) 把矩阵中小于10的替换成10,大于18的替换成18