zoukankan      html  css  js  c++  java
  • 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)  # 返回一个布尔类型的数组
    
  • 相关阅读:
    原型设计 + 用户规格说明书
    第三次作业
    MathExam第二次作业
    第一次随笔
    冲鸭第一的合作
    功能规格说明书
    测试与优化
    结对编程
    高分小学计算器
    现实与梦
  • 原文地址:https://www.cnblogs.com/Mrzhang3389/p/9684741.html
Copyright © 2011-2022 走看看