概要

图像(Image)由称为 像素 (Pixel)的较小成分组成。 视频(Video)由多个 (Frame)组成,每个帧都不过是一幅图像。

目标

我们将获得一些使用各种 NumPy 函数的实际经验,这些函数用于创建 NumPy 数组并获取它们的形状。我们将使用 NumPy 的 0、1 和 rand 函数来创建数组。我们还将查看它们的数据类型和形状。

内容

来看看创建 NumPy 数组的四种方法:

  • 全 0 填充数组:np.zeros
  • 全 1 填充数组:np.ones
  • 随机数填充数组:np.random.rand
  • 指定值填充数组:np.array

函数有两个重要的参数:

  • 数组的形状。对于一个二维数组,这就是(行数,列数)。
  • 元素的数据类型。默认情况下,NumPy 使用 浮点数 作为其数据类型。对于图像,我们将使用不带正负号的 8 位整数(unsigned 8-bit integers)np.uint8。这背后的原因是 unsigned 8-bit integers 的范围是 0 到 255,这与像素值的范围相同。

譬如:我们要创建一个大小是 4x3 的全 0 填充数组,我们可以通过使用 np.zeros(4,3) 来实现。类似地,如果我们想创建一个全 1 填充的 4x3 数组,我们可以使用 np.ones(4,3)

有了 NumPy 数组之后,就可以使用 npArray.shape 查找数组的形状,其中 npArray是 NumPy 数组的名称。

import numpy as np # 导入NumPy模块# 创建一个5行6列的2D NumPy数组,用零填充
npArray = np.zeros((5,6)) print(npArray) # 输出刚刚创建的数组'''
[[0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0.]]
'''print(npArray.dtype) # 输出数组元素的数据类型
# float64print(npArray.shape) # 输出数组的形状
# (5, 6)# 输出数组中的行数
print("数组中的行数(row) = {}".format(npArray.shape[0]))
# 输出数组中的列数
print("数组中的列数(columns) = {}".format(npArray.shape[1]))
'''
数组中的行数(row) = 5
数组中的列数(columns) = 6
'''

创建一个 5 行 6 列全 0 填充的数组

现在,我们将使用前面看到的其他命令来创建大小相同的数组,即(5,6),并且指定数据类型(np.uint8)。 让我们创建一个全 10填充的数组。

# 创建一个全1填充的数组,形状大小为(5,6),数据类型为(np.uint8)
npArray = np.ones((5,6), dtype=np.uint8)  print(npArray) # 输出刚刚创建的数组
'''
[[0 0 0 0 0 0][0 0 0 0 0 0][0 0 0 0 0 0][0 0 0 0 0 0][0 0 0 0 0 0]]
'''print(npArray.dtype) # 输出数组元素的数据类型
# uint8print(npArray.shape) # 输出数组的形状
# (5, 6)# 输出数组中的行数
print("数组中的行数(row) = {}".format(npArray.shape[0]))
# 输出数组中的列数
print("数组中的列数(columns) = {}".format(npArray.shape[1]))
'''
数组中的行数(row) = 5
数组中的列数(columns) = 6
'''

创建随机数填充数组

我们将创建一个用随机数填充的数组。 请注意,在构建由随机数填充的数组时,我们无法指定数据类型。

# 创建一个随机数填充的数组,形状大小同样是(5,6)
npArray = np.random.rand(5,6)  print(npArray) # 输出刚刚创建的数组'''
[[0.76493029 0.4244641  0.96668388 0.87860886 0.00654919 0.46697776][0.20844501 0.40487349 0.51814253 0.06393495 0.21362829 0.64340518][0.8480972  0.65643116 0.08282768 0.09566009 0.90510305 0.74211234][0.64052005 0.85885759 0.48681204 0.73636393 0.65345601 0.2980164 ][0.37037381 0.28148836 0.15755969 0.32690712 0.56888984 0.16034325]]
'''

创建指定值填充数组

# 创建指定值填充数组
npArray = np.array([[1,2,3,4,5,6],[7,8,9,10,11,12],[13,14,15,16,17,18],[19,20,21,22,23,24],[25,26,27,28,29,30]],dtype=np.uint8)print(npArray) # 输出刚刚创建的数组'''
[[ 1  2  3  4  5  6][ 7  8  9 10 11 12][13 14 15 16 17 18][19 20 21 22 23 24][25 26 27 28 29 30]]
'''

小结

我们看到了如何使用不同的函数创建 NumPy 数组,如何指定其数据类型以及如何显示其形状。

1、创建numpy数组相关推荐

  1. [云炬python3玩转机器学习笔记] 3-4创建Numpy数组和矩阵

    其他创建 numpy.array的方法 np.zeros(10) array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]) np.zeros(10).dtype ...

  2. python观察日志(part25)--创建numpy数组

    学习笔记,仅供参考,有错必纠 按需更新 numpy中的数组 创建数组 # 构造正态矩阵 np.random.normal(0, 1, (4, 4)) array([[ 0.37736985, -0.2 ...

  3. 05NumPy--5.2创建NumPy数组

    #语法:array([列表]/(元祖)) import numpy as np a = np.array([1,2,3,3]) print(a) print(type(a

  4. python笔记3(numpy数组)

    记录python听课笔记 文章目录 记录python听课笔记 一,数组创建 1.创建NumPy数组 1.1一维数组和二维数组的创建和访问 1.2三维数组 1.3数组元素的数据类型 1.4arange( ...

  5. NumPy 数组对象

    NumPy 数组对象 # 来源:NumPy Essentials ch2 数组索引和切片 # 创建 100x100 个 0~1 随机数 x = np.random.random((100, 100)) ...

  6. NumPy Essentials 带注释源码 二、NumPy 数组对象

    # 来源:NumPy Essentials ch2 数组索引和切片 # 创建 100x100 个 0~1 随机数 x = np.random.random((100, 100)) # 取第 42 行 ...

  7. c语言转换为python语言_使用C语言中的数据缓冲区和NumPy数组之间的转换来为Python接口打包C程序的最佳方法是什么?...

    基本上有三种方式: >从图像缓冲区复制到NumPy阵列,反之亦然.当给定C/C++图像时,创建NumPy阵列并复制数据,当给定NumPy阵列时,创建C/C++图像并复制数据. > NumP ...

  8. Python数据分析与可视化——NumPy数组

    NumPy数组 创建NumPy数组除了可以使用底层Ndarray构造器来创建外,也可以通过以下3种方式来创建. 1.numpy.empty() 方法 该方法用来创建一个指定形状(shape).数据类型 ...

  9. c语言随机生成整数存放一维数组_文科生学 Python 系列 7: Numpy 数组/索引和切片...

    第四课:本课内容: • 0. 导入 NumPy 包 • 1. 创建 NumPy 数组 • 2. 索引和切片 • 3. 读取文件 • 4. 布尔型索引 • 5. 数组的运算 • 6. 常用函数举例 Nu ...

最新文章

  1. [转]mysql性能的检查和调优方法
  2. vm虚拟机下linux安装python_VM中安装linux系统,安装VS Code,搭建Python环境
  3. java并发框架支持锁包括,tip/面试题_并发与多线程.md at master · 171437912/tip · GitHub...
  4. 【Android 安全】DEX 加密 ( 常用 Android 反编译工具 | apktool | dex2jar | enjarify | jd-gui | jadx )
  5. python基础笔记_python基础学习笔记(九)
  6. jenkins ssh发布配置
  7. sh 脚本执行sql文件传参数
  8. java swing 面试题_下面有关JAVA swing的描述,说法错误的是?
  9. Java jdk中的部分工具javac javaw javaws javadoc javah javap jar jdb jps的作用
  10. 不能说服别人接受,只能是个烂设计
  11. Eprime error number 1234 :unable to load sound 203
  12. ThinkPHP商城分类无限分类遍历数据
  13. js数组 reduce函数
  14. estore简版商城思路
  15. emoji语言抽象话大全_当抽象话也成为一种暗语
  16. 用java写布尔矩阵奇偶性
  17. oracle11g dataguard
  18. Android Retrofit Put请求
  19. Linux公社FTP服务器地址及用户名密码
  20. Matlab画三维立体网状图形(类似魔方)

热门文章

  1. Axure中继器结构与原理详解
  2. 透过荣耀耳机的三重“炼金术”,重识TWS行业
  3. linphone android源码,无法在实际设备上运行Linphone-android源代码
  4. java flowlayout 事件_java窗体中的FLOWLAYOUT
  5. pygame 生成文字
  6. 各部件作用计算机,简述计算机五大部件及其作用
  7. 低功耗蓝牙系统体系结构
  8. R语言基于ARMA-GARCH-VaR模型拟合和预测实证研究分析案例
  9. java-net-php-python-39jspm垃圾回收管理系统计算机毕业设计程序
  10. linux下载sra数据库,linux下使用Aspera Connect下载sra数据