维度:一组数据的组织形式
一维数据:采用线性组织(列表有序,集合无序)
列表和数组:列表中数据类型可以不同,而数组数据类型必须相同
二维数据: 一维数据的组合形式,表格(列表)
多维数据由一维或者二维数据扩展而成(列表)
高维数据(字典类型或数据表示格式)
一个强大的N维数组对象 ndarray
引用:import numpy as np
ndarray在程序中别名就是array
例: 计算A^2 + b^3 ,其中a和b是一维数组
#常规算法
a = [0, 1, 2, 3, 4]
b = [9, 8, 7, 6, 5]
c = []
for i in range(len(a)):
c.append(a[i] ** 2 + b[i] ** 3)
print(c[i], end=" ")
#使用ndarry数组对象
import numpy as np
a = np.array([0, 1, 2, 3, 4])
b = np.array([9, 8, 7, 6, 5])
c = a ** 2 + b ** 3
for i in range(len(c)):
print(c[i], end=" ")
数组对象可以去掉元素间运算所需要的循环,使一维向量更像单个数据
numpy底层使用c完成,运算大规模数据可以更快
数组对象采用相同的数据类型,有助于节省运算和存储空间
1、从python中的列表,元组等类型创建ndarray数组
2、使用Numpy中函数创建ndarray数组
new_a = a.astype(new_type)
astype()方法一定会创建一个新的数组(原始数据的一个拷贝),即两个类型一致
Is = a.tolist()
注意: 切片的时候区间是左闭右开区间
import numpy as np
a = np.array([0, 1, 2, 3, 4])
#索引
print(a[2])
#切片
print(a[1 : 4 : 2])
import numpy as np
a = np.arange(24).reshape(2, 3, 4)
#索引
print(a[1][2][3])
print(a[-1][-2][-3])
#每一个维度一个索引值,逗号分隔
print(a[1, 2, 3])
print(a[-1, -2, -3])
#切片
print(a[:, 1, -3])
print(a[:, 1 : 3, :])
#步长为2
print(a[:, :, ::2])
1、数组与标量之间的运算
······数组与标量之间的运算作用于数组每一个元素
import numpy as np
a = np.arange(24).reshape(2, 3, 4)
#计算平均值
print(a.mean())
#与标量进行运算
print(a / a.mean())