学习了解 Python Numpy 资料科学的观念与运用
Numpy 是 Python 资料科学计算模组,主要用於资料处理上
同时,在 Python 许多常听到的资料科学计算模组(Pandas、Scikit-learn等),都需要用到 Numpy 模组内的一部分功能,几乎是使用 Numpy 当做基础开发出来的
Numpy 使用多维阵列 ndarray 来取代 Python 的串列资料,是个可以装载相同类型资料的多维容器
阵列 | 说明 |
---|---|
一维阵列 | 向量(Vector) |
二维阵列 | 矩阵(matrix) |
多维阵列 | 使用多个矩阵(matrix)各轴向(axis)组合起来的形状(shape) |
读取方式,横(左右)的为列 row,直(上下)的为栏 column(col)
一维阵列 | 1D array | 向量(Vector) |
---|---|---|
1 | 2 | 3 |
因一维阵列只有一轴向,因此只有 col 的数量,所以形状 shape(3)
二维阵列 | 2D array | 矩阵(matrix) |
---|---|---|
1 | 2 | 3 |
4 | 5 | 6 |
二维阵列有 row 跟 col 二轴向,轴向看法:先看 row,再看 col(上述有2个 row,3个 col),因此形状是 shape(2,3)
多维阵列,是以多个 row 跟 col 形成的矩阵组合起来
以三维来说,有3个矩阵,2个 row,3个 col,轴向看法:先看矩阵数量,再看 row,最後看 col,因此形状是 shape(3,2,3)
import numpy as np
可以将串列元组资料型态,转换为 ndarray 资料型态,语法为:
numpy.array(object, [其余参数])
dtype = None, order = None, subok = False, ndmin = 0
array参数 | 说明 |
---|---|
object | 串列或元组资料 |
dtype | 阵列的资料型态 |
(还有其他参数,此篇仅说到将使用到的,若感兴趣可自行查询学习)
实际体验
import numpy as np
v1 = np.array((1, 2, 3, 4, 5)) # 使用 list 资料型态
v2 = np.array([1.1, 2.2, 3.3, 4.4, 5.5]) # 使用 tuple 资料型态
print(v1)
print("v1 type:%s"%(type(v1))) # 印出 v1 资料型态
print(v2)
print("v2 type:%s"%(type(v2))) # 印出 v2 资料型态
若是要查询指定的 ndarry 资料的话,仅需使用「ndarray.dtype」即可
若是要设定 ndarry 资料型态的话,仅需要在建立阵列时将 dtype 参数加入,并指定资料型态即可
实际体验
import numpy as np
v1 = np.array((1, 2, 3, 4, 5))
v2 = np.array([1.1, 2.2, 3.3, 4.4, 5.5])
v3 = np.array([1.1, 2.2, 3.3, 4.4, 5.5], dtype=int) # 转换资料型态为 int
print("v1.dtype:%s"%(v1.dtype)) # 印出 v1 资料型态
print("v2.dtype:%s"%(v2.dtype)) # 印出 v2 资料型态
print("v2:%s"%(v2)) # 印出 v2 资料内容
print("v3:%s"%(v3)) # 印出 v3 资料内容
print("v3.dtype:%s"%(v3.dtype)) # 印出 v3 资料型态
arange 其实跟 range 有点相似,可以建立等距的整数数列
其语法必要的参数是终止值,而若要使用间隔值,则还需要设定起始值:
(若只有终止值,没有起始值的话,起始值会以 0 开始)
numpy.arange([起始值], 终止值, [间隔值])
实际体验
印出范围 1~20,值与值之间需要相间隔 3
import numpy as np
arangeValue = np.arange(1, 20, 3)
print(arangeValue)
numpy.zeros((阵列各维度用逗号区隔))
实际体验
import numpy as np
zeroValue = np.zeros((3))
print(zeroValue)
zeroValue2 = np.zeros((3, 5))
print(zeroValue2)
numpy.ones((阵列各维度用逗号区隔))
实际体验
import numpy as np
oneValue = np.ones((3))
print(oneValue)
oneValue2 = np.ones((3, 5))
print(oneValue2)
只要给予阵列的区间「起始值, 终止值」,就可以要求在这个区间内产生几个元素,语法为:
numpy.linspace(起始值, 终止值, 元素个数)
实际体验
import numpy as np
linspaceValue = np.linspace(1, 10, 3)
print(linspaceValue)
将透过给予的形状,建立随机值的阵列
numpy.empty((阵列各维度用逗号区隔))
实际体验
import numpy as np
emptyValue = np.empty((2))
print(emptyValue)
ndarray 物件 | 说明 |
---|---|
ndarray.ndim | ndarray 物件的维度 |
ndarry.shape | ndarry 物件的每一个维度的大小 |
ndarry.size | ndarry 物件所组成之 array 的总元素数量,回应之数值会等於 ndarray.shape 的每个元素相乘 |
import numpy as np
list_data =[
[[1, 3],
[2, 6]],
[[1, 3],
[2, 6]],
[[1, 3],
[2, 6]]
]
numpyArray = np.array(list_data)
print("维度:", numpyArray.ndim)
print("形状:", numpyArray.shape)
print("数量:", numpyArray.size)
若是想接触 Python 资料科学的领域的话,Numpy 真的需要熟悉运用
将在下篇说明 Numpy 的其余运用方式
>>: [DAY 27] 复刻 Rails - Routing 威力加强版 - 1
今天的内容为该如何运用程序码来控制角色动画切换 ...
在各行各业工作时,很多人都有因为工作上失误,而被上司责骂的经验,这些必经的过程,被视为「学习」和「记...
在时间序列分析中相当有名的一个数学模型,差分整合移动平均自回归模型,又名为ARIMA模型,我们就来介...
var item = $('input:radio[name="radio_name&qu...
相比较传统的服务器来说,云服务器的安全性是更高的,因为传统的服务器的安全性,其实是需要日常大量的维护...