NumPy入门(四)

简介: 本文其实属于:Python的进阶之道【AIoT阶段一】的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 NumPy入门,后续还会单独发一篇 NumPy高级 内容供读者学习。

4.1 数组的维度

image.png

import numpy as np
arr = np.random.random(size = (3, 5))
arr.ndim    # 维度

4.2 数组的形状

image.png

import numpy as np
arr = np.random.random(size = (3, 5))
arr.shape    # 形状

4.3 数组元素的总数

image.png

import numpy as np
arr = np.random.random(size = (3, 5))
arr.size    # 数组元素的总数

4.4 数据类型

image.png

import numpy as np
arr = np.random.random(size = (3, 5))
arr.dtype   # 数据类型 float64 (64位)

4.5 数组中每个元素的大小(以字节为单位)

image.png

import numpy as np
arr = np.random.random(size = (3, 5))
# 0, 1 -----> 位
# 8个位 -----> 字节
# 64 / 8 = 8
arr.itemsize  # 每个元素的大小,对应8个字节

5.NumPy数据保存

🚩我们可以使用 save 方法去保存我们的数组:

image.png

import numpy as np
arr = np.arange(0, 10, 3)    # NumPy 的方法,功能类似
# 当前目录
np.save('./data1', arr)      # 保存

运行后我们返回到创建好的目录下:

11.png

可以发现多了一个 data1.npy 这里面就是我们刚刚保存的数组信息。

注意,如果你点开新建立的这个文件的话,会发现:

image.png

里面并没有我们想看到的存储信息,这是因为文件保存的内容是二进制的,只能使用代码去打开,下面我们介绍从文件中读取我们的数据的方法:

我们按照下述代码可以取出数据:

image.png

import numpy as np
arr = np.arange(0, 10, 3)    # NumPy 的方法,功能类似
np.load('./data1.npy')       # 取出数据

如果我们要把多个数组存入一个文件,可以使用 savez 方法:

image.png

import numpy as np
arr = np.arange(0, 10, 3)    # NumPy 的方法,功能类似
np.set_printoptions(suppress = True)
arr2 = np.logspace(0, 10, base = 2, num = 11)
np.savez('./data2.npz', x = arr, y = arr2) 
# 把arr和arr2都存入'./data2.npz'
# 把arr存入,起名为x;把arr2存入,起名为y

12.png

运行后,可以看到多了一个 data2.npz 文件,这里面就是我们刚刚保存的数组信息。

我们在取值的时候可以一个一个取:

image.png

import numpy as np
arr = np.arange(0, 10, 3)    # NumPy 的方法,功能类似
np.set_printoptions(suppress = True)
arr2 = np.logspace(0, 10, base = 2, num = 11)
np.load('./data2.npz')['x']   # 取出 x ---> 取出 arr
np.load('./data2.npz')['y']   # 取出 y ---> 取出 arr2

注意我们存的时候用什么名,取的时候就用什么名,比如:

image.png

显然在这个时候取出 y 的话就是错误的。

读写csv、txt文件:

image.png

image.png

import numpy as np
arr = np.random.randint(0, 10, size = (3, 4))
# 储存数组到csv文件 
np.savetxt("./arr.csv", arr, delimiter = ',')  # 存储到txt文件也一样
# 读取文件
np.loadtxt('./arr.csv', delimiter = ',', dtype = np.int32)

6.NumPy数据类型

🚩我们的数据类型包涵三大类:

整数

浮点数

字符串


ndarray的数据类型:

  • int(整数): int8、uint8、int16、int32、int64
  • float(浮点数): float16、float32、float64
  • str(字符串)


float16 float32,int16 int 32有什么不同:数字越大,证明其在内存中所占内存越大,当然相应的,可以表示的数的范围也就越大:如 int8 的范围大小为 28,但是因为它既包含正数也包含负数,故它其实可以表达的范围就是 [-128, 127] ,unit8 的范围也是 28,不同的是它不包含负数即只包含0和正数,故 unit8 的取值范围就是 [0, 255],使用 astype() 方法可以转换数据类型:

我们在创建类型的时候,可以用dtype指明它的数据类型

image.png

当然,我们还可以给它为 int32:

image.png

我们输入如下代码,编译运行:

image.png

然后返回到我们的文件夹查看我们刚刚保存的两个文件:

image.png

很直观的可以注意到,两个文件的大小相差大致为8倍,这个的原因其实就是 64 / 8 = 8

使用 astype() 方法可以转换数据类型:

image.png

这里我们需要注意,转换之后,原数组的数据类型是不变的,使用astype()进行转换可以说是创建了一个新的数组:

image.png

目录
相关文章
|
7月前
|
数据可视化 数据挖掘 C++
一文入门数分三剑客--Numpy、Pandas、Matplotlib
一文入门数分三剑客--Numpy、Pandas、Matplotlib
184 0
|
存储 数据可视化 数据挖掘
【数据分析入门】Numpy进阶
【数据分析入门】Numpy进阶
|
机器学习/深度学习 PyTorch TensorFlow
[深度学习入门]Numpy基础(上)
[深度学习入门]Numpy基础(上)
|
机器学习/深度学习 数据挖掘 索引
【数据分析入门】Numpy基础
【数据分析入门】Numpy基础
|
机器学习/深度学习 数据采集 数据挖掘
【100天精通Python】Day52:Python 数据分析_Numpy入门基础与数组操作
【100天精通Python】Day52:Python 数据分析_Numpy入门基础与数组操作
91 0
|
2月前
|
数据挖掘 索引 Python
Python数据分析篇--NumPy--入门
Python数据分析篇--NumPy--入门
39 0
|
5月前
|
数据采集 数据可视化 数据挖掘
数据分析入门:用Python和Numpy探索音乐流行趋势
数据分析入门:用Python和Numpy探索音乐流行趋势
|
7月前
|
架构师 Java Python
NumPy 系列教程 001:入门和使用数组
NumPy 系列教程 001:入门和使用数组
45 0
|
7月前
|
C++ Python 索引
Python Numpy入门基础(二)数组操作
Python Numpy入门基础(二)数组操作
62 0
Python Numpy入门基础(二)数组操作
|
7月前
|
Python 索引
Python Numpy入门基础(一)创建数组
Python Numpy入门基础(一)创建数组
76 0
Python Numpy入门基础(一)创建数组
下一篇
DataWorks