github博客传送门
博客园传送门
安装numpy
通过命令提示符 pip install numpy
或者通过第三方发放版 Anaconda 进行鼠标操作安装
Numpy_01 创建 指定数据类型 查看维度和数据类型 简单的数学运算
Numpy_02 索引和切片
Numpy_03 转置和轴对换
Numpy_04 通用函数
Numpy_05 数据处理
Numpy_06 数组的文件输入输出 线性代数
直接通过numpy创建
import numpy as np # 导入numpy包
# 生成一些随机数据 二行三列的矩阵
data = np.random.randn(2, 3) # 生成随机数 二行三列的数组
print(data)
通过将列表(list)转换为数组
data1 = [6, 7.5, 8, 0, 1] # 创建一个列表
arr1 = np.array(data1) # 将列表转换为数组
print(arr1) # 打印这个数组
嵌套列表会被转换为多维数组
data2 = [[1, 2, 3, 4], [5, 6, 7, 8]] # 创建一个嵌套列表
arr2 = np.array(data2) # 将列表转换为数组 二行四列的数组
print(arr2) # 打印这个数组
创建arange数组
print(np.arange(15)) # 生成一个一行十五列 值为 0~14 的 类型为 int 的数组
创建特定数组
print(np.zeros(10)) # 创建一行十列 值全为0 类型为 float 的数组
print(np.zeros((3, 6))) # 创建三行六列 值全为0 类型为 float 的数组
print(np.empty((2, 3, 2))) # 返回一个 两层 三行两列的 值为未初始化的垃圾值 类型为float 的数组
print(np.full((3,3), 2) # 创建了一个 3 * 3 值全为 2 的数组
指定数据类型 创建ndarray
arr1 = np.array([1, 2, 3], dtype=np.float64) # 指定数据类型为 float64位
arr2 = np.array([1, 2, 3], dtype=np.int32) # 指定数据类型为 int32位
print(arr1.dtype) # 打印出arr1的数据类型
print(arr2.dtype) # 打印出arr2的数据类型
转换ndarray数组的数据类型
arr = np.array([1, 2, 3, 4, 5]) # 创建一个 默认 int32 类型的数组
print(arr.dtype) # 打印这个数组的类型
float_arr = arr.astype(np.float64) # 将这个数组转化为 float64 位的数组
print(float_arr.dtype) # 打印这个数组的类型
转换数据类型时的特别注意事项
arr = np.array([3.7, -1.2, -2.6, 0.5, 12.9, 10.1]) # 创建了一个 float64 位的数组
print(arr) # 打印一下
print(arr.astype(np.int32)) # 打印 转换这个数组之后的值 将 float64 位转换为 int32 位之后 小数部分会被舍弃
如果字符串数组全是数字 也可使用 astype 将其转换为数值形式
numeric_strings = np.array(['1.25', '-9.6', '42'], dtype=np.string_) # 创建一个 字符串数组 内容全为数值
print(numeric_strings.astype(float)) # 将这个 全是数值的 字符串类型的数组 转换为 float 类型的数组
dtype还有一个属性
int_array = np.arange(10) # 创建了一个 int 类型的数组
calibers = np.array([.22, .270, .357, .380, .44, .50], dtype=np.float64) # 创建了一个 float 类型的数组
print(int_array.astype(calibers.dtype)) # 将 float类型的数组类型 赋给 int 类型的数组
print('data shape:', data.shape) # 打印数组的维度
print('data dtype:', data.dtype) # 打印数组的类型
单独查看维度 和 查看维度
print(arr2.ndim) # 只显示是几维
print(arr2.shape) # 显示几行几列 几层
矩阵乘法:
#所有元素都乘以10
print('data * 10: \n', data * 10)
数组乘数组 对应位置直接相乘得结果
data = np.array([[1., 2., 3.], [4., 5., 6.]]) # 创建一个数组
print(data) # 打印出这个数组
print(data * data) # 数组对应位置相乘即结果
矩阵除法和平方:
print(1 / data) # 每一个位置 用 1 除以 得出结果
print(data ** 0.5) # 每个位置 的 0.5 次方得出结果
矩阵加法减法:
#每个元素与自身相加 对应位置直接相加得出结果
print('data + data : \n', data + data)
print(data - data) # 每个位置对应相减得出结果
数组的比较会生成布尔类型的数组:
arr2 = np.array([[0., 4., 1.], [7., 2., 12.]])
print(arr2)
print(arr2 > arr) # 返回一个布尔类型的数组