当前位置: 首页 > news >正文

NumPy系列 - 创建矩阵

目录

  • 前传
  • 直接创建数组
    • 就只是创建数组
      • 1. `np.array()`
      • 2. `np.arange()`
      • 3. `np.ones()`
      • 4. `numpy.ones_like()`
      • 5. `np.zeros()`
      • 6. `numpy.zeros_like()`
    • 定义数据类型
  • 参考资料

前传

由于,某人在上智能相关课程的时候,总想着一大堆的事情,统计股市涨跌,行业关联度等。
所以,为了不挂科,还是总结一些东西会比较好。
好啦,现在要开始了。
我们先要引入numpy。

import numpy as np

直接创建数组

就只是创建数组

1. np.array()

通过list创建数组,这里要用到np.array()

按照官方的语法,如下:

np.array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0, like=None)

我觉得有一些可以解释一下:

  • object:列表类型的东西
  • dtype:想要的数据类型
  • copy:是否可以复制
  • ndmin:维度
a = np.array([1, 2, 3])# array([1, 2, 3])

当然,也可以这样

ar = [1, 2, 4]
a = np.array(ar)# array([1, 2, 4])

这也是可行的。

2. np.arange()

这个函数类似于Python原生的range(),所以,就存在两种形式:

  1. np.arange(n):直接生成从0~n-1的数组
  2. np.arange(begin, end):直接生成从begin~end-1的数组

此外,还有一种创建方式:np.arange(begin, end).reshape(n, m, …, k),这可以reshape到你想要的形状。
譬如:

a = np.arange(9).reshape(3,3)		# 创建一个`3*3`的矩阵
b = np.arange(8).reshape(2,2,2)		# 创建一个`2*2*2`的矩阵

如果要定义类型,就直接这样做:

np.arange(n, dtype='float64')

(更多数据类型见“定义数据类型”)

3. np.ones()

这个是创建一个全部都是1的数组(矩阵)的函数

按照python的help函数的解释是

np.ones(shape, dtype=None, order='C', *, like=None)

实际上要在意的是,以下的部分:

np.ones(shape, dtype=None)

4. numpy.ones_like()

创建一个像某个给定要创建相同形状的数组一样的全是1的数组。

5. np.zeros()

这个是创建一个全部都是0的数组(矩阵)的函数

np.zeros(shape, dtype=float, order='C', *, like=None)

肯定的是,值得关注的还是以下的部分:

np.zeros(shape, dtype=None)

6. numpy.zeros_like()

创建一个像某个给定要创建相同形状的数组一样的全是0的数组。

定义数据类型

我们可以通过array函数里面的dtype形参来定义,如下

ar = [1, 2, 4]
a = np.array(ar, dtype='float64')# array([1., 2., 4.])

上面的代码表示的是创建float64类型的ndarray

除了float64之外,常见的数值数据类型还有:

  1. int:整数数据类型,表示整数值,可以使用不同的位数,如int8int16int32int64等。

  2. uint:无符号整数数据类型,表示非负整数值,也可以使用不同的位数,如uint8uint16uint32uint64等。

  3. complex:复数数据类型,表示复数值,可以使用不同的精度,如complex64(由两个32位浮点数组成)、complex128(由两个64位浮点数组成)等。

  4. bool:布尔数据类型,表示布尔值,只能取TrueFalse两个值。

  5. byte、rune:这两个类型实际上是uint8和int32的别名,分别用于表示ASCII字符和Unicode字符的值。


参考资料

暂无参考资料


http://www.mrgr.cn/news/94792.html

相关文章:

  • 安全无事故连续天数计算,python 时间工具的高效利用
  • 自然语言处理(2)—— NLP之百年风雨路
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加导出数据功能
  • 游戏立项时期随笔记录
  • 工作记录 2017-01-25
  • Nginx限流与鉴权(Nginx Traffic Limiting and Authentication)
  • TCP简单链接的编程实现
  • C++学习之redis
  • Android Fresco 框架缓存模块源码深度剖析(二)
  • Windows Server中的NTP服务器部署(NTP Srver Deployment in Windows Server)
  • 探索具身多模态大模型:开发、数据集和未来方向(下)
  • 【2025年3月最新】Cities_Skylines:城市天际线1全DLC解锁下载与教程
  • 程序化广告行业(23/89):深度剖析广告效果评估指标
  • LightGBM + TA-Lib A股实战进阶:Optuna调优与Plotly可视化详解
  • 回顾Transformer,并深入讲解替代方案Mamba原理(图解)
  • MySQL InnoDB引擎的锁机制详解
  • 程序化广告行业(22/89):腾讯广告业务布局与广告效果评估基础
  • Bash中小数的大小比较以及if条件中小数的大小判断
  • 二阶近似 是什么意思
  • Windows 图形显示驱动开发-WDDM 3.0功能- D3D12 增强型屏障(三)