目录

1.npz文件

2.npy文件

3.csv文件

4.列表、元组、numpy矩阵

①列表

②元组(不可变列表)

③Numpy数组

③Numpy矩阵

1.npz文件

npz是python的压缩文件

①读取文件

#独取文件 读取当前文件夹下的data的mag_csdataset = np.load('./data/mag_cs.npz', allow_pickle=True)#通过上面这行代码得到的是一个`numpy.lib.npyio.NpzFile`文件

NpzFile对象有个属性files

可以通过它查看该压缩文件的所有文件名,通过dataset['文件名']来获取文件内容

print(dataset.files)print(len(dataset.files))# 文件内容、type、shape(以adj_matrix.data为例)print(dataset['adj_matrix.data'])print(type(dataset['adj_matrix.data']))print(dataset['adj_matrix.data'].shape)

③保存为.npz文件

# 将x、y、z数组,分别保存为x, sinx, z这三个npz文件x = np.arange(1, 10)y = np.sin(x)z = 2 * x + 0.5np.savez_compressed('./data/my_dataset', x=x, sinx=y, z=z)

2.npy文件

①读取与保存

import numpy as np​data = np.zeros((3,4))np.save('data.npy', data)#保存del datadata = np.load('data.npy')#读取​print('type :', type(data))print('shape :', data.shape)print('data :')print(data)

输出如下:

type : shape : (8, 4) data : [[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]]

②npy转csv

  1. 加载npy格式的数据文件

  2. 给每一列数据添加一个列名

  3. 以csv格式保存数据

import pandas as pdimport numpy as npimport csv​data = np.load('data.npy')columns = ['A', 'B', 'C', 'D'] # 这是个list?还是数组?​#保存为csvwith open('data.csv', 'w') as f: csv_writer = csv.writer(f) csv_writer.writerow(columns) csv_writer.writerows(data) #查看保存的csvdf = pd.read_csv('data.csv')print(df)
3.csv文件

1.使用csv.writer()创建

import csv headers = ['学号','姓名','分数']rows = [('202001','张三','98'), ('202002','李四','95'), ('202003','王五','92')]with open('score.csv','w',encoding='utf8',newline='') as f : writer = csv.writer(f)# 创建 writer.writerow(headers) # 写入列名 writer.writerows(rows)# 写入数据

2.使用csv.Dictwriter()创建

import csv headers = ['学号','姓名','分数']rows = [{'学号':'202001','姓名':'张三','分数':'98'}, {'学号':'202002','姓名':'李四','分数':'95'}, {'学号':'202003','姓名':'王五','分数':'92'}]with open('score.csv','w',encoding='utf8',newline='') as f : writer = csv.DictWriter(f,headers) writer.writeheader() writer.writerows(rows)

3.使用writelines()创建:

import csv headers = ['学号,姓名,分数','\n']csv = ['202001,张三,98','\n', '202002,李四,95','\n', '202003,王五,92']with open('score.csv', 'w',encoding='utf8',newline='') as f: f.writelines(headers) # write() argument must be str, not tuple f.writelines(csv)
4.列表、元组、numpy矩阵

python没有数组

1、元组的元素可以为:元组、列表、字典、集合 (列表作为元组的元素时,列表内的值可以改动)

2、列表的元素可以为:元组、列表、字典、集合

3、字典的元素可以为:元组、列表、字典、集合

4、集合的元素可以为:元组

①列表

列表中存放的数据是可以进行修改,比如”增”、“删”、“改”、“查”

# 使用[]存储,使用 , 分隔每个值a = [1, 2, 3]a = [‘xiaoWang’,‘xiaoZhang’,‘xiaoHua’]​# 列表中的元素可以是不同类型的a = [1, ‘a’]​# 列表元素修改a[2] = "我喜欢她啊"​#字符串转列表name = '小阿丁,小红'list1 = list(name)​# 列表的嵌套info = [['张三', 'M', '45'], ['李四', 'F', '36'], ['王五', 'M', '42']]#取出李四年龄print(schoolNames[1][2])
②元组(不可变列表)

元组的元素不能修改。元组使用小括号,列表使用方括号。 元组无法进行增删改。但可以拼接。

tuple = (1, 9, 7, 5, 6, 2,)​# 元组转列表list1 = list(tuple)# 列表转元组tuple2 = tuple(list1)​# 元组嵌套tup3 = ('python', (1, 2, 3), 'java', 3)tup3 = ('python', [1, 2, 3], 'java', 3)
③Numpy数组

Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。

Numpy是专门针对数组的操作和运算进行了设计,所以数组的存储效率远优于Python中的嵌套列表。

Numpy数组中的所有元素的类型都是相同的,而Python列表中的元素类型是任意的。

list可以存储一维数组,通过列表的嵌套可以实现多维数组。

list不具有array的全部属性(如维度、转置等)

import numpy as npa = np.array([[1,2,0,1],[1,6,9,55],[7,8,9,5]]) #a为数组print(a.T)#输出a的转置
③Numpy矩阵

Numpy数组(arry)和矩阵(matrix)的区别:

Numpy matrices 是2维的

Numpy arrays (ndarrays) 可以是多维的

Matrix是Array的一个小的分支。matrix 拥有array的所有特性。

numpy中matrix的主要优势是:

相对简单的乘法运算符号。如,matrix: ab,就是矩阵积。 numpy里面arrays遵从逐个元素的运算。如array:cd,相当于matlab里面的c.d运算。而矩阵相乘,则需要numpy里面的dot命令 。