Numpy_01 创建 指定数据类型 查看维度和数据类型 简单的数学运算

github博客传送门
csdn博客传送门

安装numpy
通过命令提示符 pip install numpy
或者通过第三方发放版 Anaconda 进行鼠标操作安装

Numpy系列

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指定数据类型:

数据类型的表如下:
图一
图二

指定数据类型 创建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: 
', 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 : 
', data + data)
print(data - data)  # 每个位置对应相减得出结果

数组的比较会生成布尔类型的数组:

arr2 = np.array([[0., 4., 1.], [7., 2., 12.]])
print(arr2)
print(arr2 > arr)  # 返回一个布尔类型的数组
原文地址:https://www.cnblogs.com/Mrzhang3389/p/9684741.html