一、数组的轴
在numpy中数组的轴可以理解为方向,使用0,1,2...数字表示。
对于一个一维数组,只有一个0轴,对于2维数组(如shape(2,2)),有0轴和1轴,对于一个三维数组(如shape(2,2,3)),有0,1,2轴。
对于二维数组:axis = 0表示列;axis = 1表示行。
如下图所示:
对于三位数组来说:axis = 0表示shape(2,2,3)中的第一个2,可以理解为有几块,几个维度;axis = 1表示列;axis = 2表示行。
示例代码如下:
import numpy as np
b = np.random.randint(0, 5, [3, 3, 4]) # 创建一个三维数组,数字范围为(0,5)
print(b)
print(b.max(axis=0)) # 沿着维度方向的最大值
print(b.max(axis=1)) # 列的最大值
print(b.max(axis=2)) # 行的最大值
输出结果如下:
二、numpy读取数据
让numpy读取CSV文件(Comma - Separated Value)逗号分隔值文件 。
显示:表格状态
源文件:换行和都好分割行列的格式化文本,每一行的数据表示一条记录。
在numpy中通过np.loadtxt(frame.dtype = np.float.delimiter = None,skiprows = 0,usecols = None, unpack = False)读取文件。
其中:frame为文件名,也就是文件所在的文件夹路径。
dtype:数据类型,选择CSV的字符串以什么数据类型读入到数组中,默认np.float
delimiter:分割字符串,默认是任何空格,改为逗号。
skiprows:跳过前x行,一般跳过第一行表头。
usecols:读取指定的列,索引,元组类型
unpack:如果True,读入属性将分别写入不同数组变量;False读入数据只写入一个数组变量,默认False。(用于转置)
我们将CSV文件放在子目录下,示例代码如下:
import numpy as np
us_file_path = "US_video_data_numbers.csv"
uk_file_path = "GB_video_data_numbers.csv"
t1 = np.loadtxt(us_file_path, delimiter=",", dtype="int")
print(t1)
print("分割线---------------------分割线")
t2 = np.loadtxt(us_file_path, delimiter=",", dtype="int", unpack=True)
print(t2)
输出结果如下所示:
通过unpack对文件内容进行了转置,即行与列互相调换。
2.1 数组进行转置的三种方法
转置是一种变换,对于numpy中的数组来说,就是在对角线方向交换数据,目的也是更方便的去处理数据。
1)通过transpose对数组进行转置(数组.transpose()):
2)通过数组.T对数组进行转置。
3)以二维数组为例,通过数组.swaoaxes(1,0)轴进行交换。
示例代码如下所示:
import numpy as np
t = np.arange(24).reshape(4, 6)
print(t)
print("第一种方法")
print(t.transpose())
print("第二种方法")
print(t.T)
print("第三种方法")
print(t.swapaxes(1, 0))
输出结果如下所示: