numpy数组04-数组的轴和读取数据

一、数组的轴

在numpy中数组的轴可以理解为方向,使用0,1,2...数字表示。

对于一个一维数组,只有一个0轴,对于2维数组(如shape(2,2)),有0轴和1轴,对于一个三维数组(如shape(2,2,3)),有0,1,2轴。

对于二维数组:axis = 0表示列;axis = 1表示行。

如下图所示:

numpy数组04-数组的轴和读取数据_第1张图片

对于三位数组来说:axis = 0表示shape(2,2,3)中的第一个2,可以理解为有几块,几个维度;axis = 1表示列;axis = 2表示行。

numpy数组04-数组的轴和读取数据_第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数组04-数组的轴和读取数据_第3张图片

二、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)

输出结果如下所示:

numpy数组04-数组的轴和读取数据_第4张图片

通过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))

输出结果如下所示:

numpy数组04-数组的轴和读取数据_第5张图片

你可能感兴趣的:(numpy)