iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >PythonNumPy创建数组方法
  • 304
分享到

PythonNumPy创建数组方法

2024-04-02 19:04:59 304人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录1. 蛮力构造法2. 特殊数值法3. 随机数值法4. 定长分割法5. 重复构造法6. 网格构造法7. 自定义数据类型1. 蛮力构造法 np.array(object, dtype

1. 蛮力构造法

np.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0)
import numpy as np

# 如果不指定数据类型,就会根据object参数自动选择合适的数据类型
a = np.array([[1, 2, 3], [4, 5, 6]])
# 也可以在创建数组时,指定元素的数据类型
b = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.uint8)

2. 特殊数值法

这里的特殊数值指的是0、1、空值。特殊数值法适合构造全0、全1、空数组,或由0、1组成的类似单位矩阵(主对角线为1,其余为0)的数组。

np.zeros(shape, dtype=float, order='C')
np.ones(shape, dtype=float, order='C')
np.empty(shape, dtype=float, order='C')
np.eye(N, M=None, k=0, dtype=float, order='C')

固定参数shape表示生成的数组结构,默认参数dtype用于指定数据类型(默认浮点型)。order参数指定的是数组在内存中的存储顺序,'C'表示C语言使用的行为优先方式,'F'表示Fortran语言使用的列优先方式

import numpy as np

print(np.zeros(6))
print(np.zeros((2, 3)))
print(np.ones((2, 3), dtype=int))
print(np.empty((2, 3)))
print(np.eye(3, dtype=np.uint8))

如果需要一个3行4列,初始值都是255的无符号整型数组

  • 方案1:全1数组乘以255
  • 方案2:全0数组加255
  • 方案3:使用填充函数fill()
import numpy as np

a = np.empty((3, 4), dtype=np.uint8)
a.fill(255)
print(a)

3. 随机数值法

np.random.random(size=None)
np.random.randint(low, high=None, size=None)
np.random.nORMal(loc=0.0, scale=1.0, size=None)

random()函数用于生成[0,1)区间内的随机浮点型整数,randint()函数用于生成[low,high)区间内的随机整形数组。参数size是一个元组,用于指定生成数组的结构

import numpy as np

print(np.random.random(3))
print(np.random.random((2, 3)))
print(np.random.randint(5))
print(np.random.randint(1, 5, size=(2, 3)))

normal()函数用于生成以loc为均值、以scale为标准差的正态分布数组。

import numpy as np
# 导入绘图模块
import matplotlib.pyplot as plt

# 生成正态分布数据
tall = np.random.normal(170, 4, 1000)
# 从156厘米到190厘米,每2厘米一个分段
bins = np.arange(156, 190, 2)
# 绘制柱状图
plt.hist(tall, bins)
# 显示图形
plt.show()

4. 定长分割法

import numpy as np

np.arange(start, stop, step, dtype=None)
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

arange()函数和pythonrange()函数用法相同,并且还可以接收浮点型参数

import numpy as np

print(np.arange(5))
print(np.arange(5, 11))
print(np.arange(5, 11, 2))
print(np.arange(5.5, 11, 1.5))
print(np.arange(3, 15).reshape(3, 4))

linspace()函数需要3个参数:一个起点、一个终点、一个返回元素的个数。linspace()函数返回的元素包括起点和终点,可以通过endpoint参数选择是否包含终点

import numpy as np

# 返回0到5之间的5个等距数值,包括0和5
print(np.linspace(0, 5, 5))
# 返回5个等距数值,包括0但不包括5
print(np.linspace(0, 5, 5, endpoint=False))

5. 重复构造法

repeat()函数用来重复数组元素。但如果被重复的数组是一个多维数组,且repeat()函数指定了axis参数,情况就会变得有些复杂

import numpy as np

a = np.arange(5)
print(a)
# 重复一维数组元素3次
print(np.repeat(a, 3))
a = np.arange(6).reshape((2, 3))
print(a)
# 重复二维数组元素3次,不指定轴
print(np.repeat(a, 3))
# 重复二维数组元素3次,指定0轴
print(np.repeat(a, 3, axis=0))
# 重复二维数组元素3次,指定1轴
print(np.repeat(a, 3, axis=1))

tile()将整个数组而非数组元素水平和垂直重复指定的次数

import numpy as np

a = np.arange(5)
print(a)
# 重复一维数组3次
print(np.tile(a, 3))
# 重复一维数组3行2列
print(np.tile(a, (3, 2)))
a = np.arange(6).reshape((2, 3))
print(a)
# 重复二维数组3次
print(np.tile(a, 3))
# 重复二维数组2行3列
print(np.tile(a, (2, 3)))

6. 网格构造法

用数组表示经纬度网格方式一:用两个一维数组表示。使用定长分隔函数linspace(),将经度从-180°180°分为间隔为10°的37个点,将纬度从90°-90分为间隔为10°的19个点,得到两个一维数组

import numpy as np

# 精度为10°,共计37个经度点
lon = np.linspace(-180, 180, 37)
# 精度为10°,共计19个纬度点
lat = np.linspace(90, -90, 19)

用数组表示经纬度网格方式二:用两个二维数组分别表示经度网格和纬度网格。经度网格中每一列的元素都是相同的(同一个经度),纬度网格中每一行的元素都是相同的(同一个纬度)。生成二维经纬度网格的常用函数是np.meshgrid(),该函数以一维经度数组lon和一维纬度数组lat为参数,返回二维的经度数组和纬度数组

import numpy as np

# 精度为10°,共计37个经度点
lon = np.linspace(-180, 180, 37)
# 精度为10°,共计19个纬度点
lat = np.linspace(90, -90, 19)

lons, lats = np.meshgrid(lon, lat)
print(lons.shape)
print(lats.shape)
print(lons[:,0])
print(lons[0])

构造经纬度网格,除了使用np.meshgrid()函数外,还有一个更强大的方法,这个方法可以直接生成纬度网格和经度网格而无需借助于一维数组(请注意,纬度在前,经度在后)

import numpy as np

# 使用实数指定网格经度为5°
lats, lons = np.mgrid[90:-91:-5, -180:181:5]
print(lons.shape, lats.shape)
# 也可以用虚数指定分隔点数
lats, lons = np.mgrid[90:-90:37j, -180:180:73j]
print(lons.shape, lats.shape)

7. 自定义数据类型

结果显示:数组会将所有元素的数据类型都转为'<U32'类型。这里的U标识Unicode字符串<表示字节顺序,意为小端在前(低位字节存储在最小地址中);32表示数组元素占用32字节,数组元素占用的字节数由所有元素中最长的那个元素决定

import numpy as np

print(np.array(['Anne', 1.70, 55]).dtype)

怎样在数组中保留用以生成数组的列表中的元素类型呢?这就需要用到自定义数据类型了。自定义数据类型类似于C语言的结构体,

其代码如下:

import numpy as np

mytype = np.dtype([('name', 'S32'), ('tall', np.float), ('bw', np.int)])
print(np.array([('Anne', 1.70, 55)], dtype=mytype))

--结束END--

本文标题: PythonNumPy创建数组方法

本文链接: https://www.lsjlt.com/news/120309.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PythonNumPy创建数组方法
    目录1. 蛮力构造法2. 特殊数值法3. 随机数值法4. 定长分割法5. 重复构造法6. 网格构造法7. 自定义数据类型1. 蛮力构造法 np.array(object, dtype...
    99+
    2022-11-11
  • JavaScript数组创建的方法
    这篇“JavaScript数组创建的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Ja...
    99+
    2022-10-19
  • 创建一个JavaScript数组的方法
    这篇文章主要介绍“创建一个JavaScript数组的方法”,在日常操作中,相信很多人在创建一个JavaScript数组的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”创建...
    99+
    2022-10-19
  • JavaScript创建数组的方法详解
    目录JavaScript创建数组数组的使用将数组转换为分割字符串数组中新增元素筛选数组删除数组指定元素总结JavaScript创建数组 1.利用new创建数组 var arr =...
    99+
    2022-11-12
  • php创建数组有几种方法
    PHP是一种十分流行的服务器端脚本语言,开发人员可以使用各种各样的方法来创建数组。本文将介绍PHP创建数组的几种常见方法。使用数组字面量在PHP中,数组字面量是最常见的创建数组的方法。使用这种方法时,我们可以直接在一对方括号中输入一个或多个...
    99+
    2023-05-19
  • php简述创建数组的方法
    PHP是一种常用的服务器端编程语言,在Web开发中用得非常广泛。数组是PHP中最常用的数据类型之一,用于存放一系列相关的数据。本文将简述PHP中创建数组的方法。1.使用array()函数创建数组在PHP中,使用array()函数可以快速创建...
    99+
    2023-05-23
  • 创建php数组的方法有哪些
    这篇文章主要讲解了“创建php数组的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“创建php数组的方法有哪些”吧!创建数组的方法:1、利用“$数组名[下标]=值;”语句,以直接赋值...
    99+
    2023-06-30
  • java创建空数组的方法有哪些
    Java创建空数组的方法有以下几种:1. 使用new关键字创建空数组:int[] arr = new int[0];2. 使用数组初...
    99+
    2023-08-19
    java
  • PHP中利用compact创建数组的方法
    这篇文章主要介绍了PHP中利用compact创建数组的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它...
    99+
    2023-06-14
  • Linux Shell 数组的创建及使用方法
    本篇内容介绍了“Linux Shell 数组的创建及使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!linux shell在编程方面比...
    99+
    2023-06-09
  • 简述php中一维数组的创建方法
    在PHP中,数组是非常重要的数据类型之一,也是常用的数据结构之一。数组可以存储多个值,其中每个值都可以被赋予一个指定的键(key),用于访问特定的值。一维数组是指只有一个维度的数组,它包含一个或多个值。下面我们来简述PHP中一维数组的创建方...
    99+
    2023-05-19
  • php数组的创建遍历的各种方法
    在 PHP 开发中,数组是一种十分重要的数据类型。它可以存储多个元素,并且可以在运行时动态地扩展和缩小大小。 在本文中,我们将探讨 PHP 中数组的创建和遍历的各种方法。一、数组的创建a. 直接创建可以使用 array() 函数来创建一个简...
    99+
    2023-05-19
  • C语言数组创建的方法有哪些
    这篇“C语言数组创建的方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言数组创建的方法有哪些”文章吧。1.一维数...
    99+
    2023-06-26
  • react创建组件有哪些方法
    这篇文章主要介绍了react创建组件有哪些方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。函数式组件:(1)语法:function myConponent(pro...
    99+
    2023-06-14
  • Shell中创建序列和数组(list、array)的方法
    关于linux数组定义,以及生成方法,请看:linux shell 动态生成 数组系列 seq使用技巧 。这里我主要说的是高效生成list 字符串,还有数组方法。 一、seq方法生成: [chen...
    99+
    2022-06-04
    数组 序列 方法
  • VBScript常数的创建方法
    这篇文章主要讲解了“VBScript常数的创建方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VBScript常数的创建方法”吧!VBScript 常数常数是具有一定含义的名称,用于代替数...
    99+
    2023-06-08
  • c++动态创建对象数组的方法是什么
    C++中动态创建对象数组的方法是使用new运算符来分配内存并创建对象。下面是一个简单的示例代码:cppclass MyClass {...
    99+
    2023-10-19
    c++
  • JavaScript创建数组的方式有哪些
    JavaScript中创建数组的方式有:1.通过字面量创建;2.通过构造函数创建;JavaScript中创建数组的方式有以下几种通过字面量创建数组1)创建一个空数组let array = [];2)创建一个指定数据的数组let array ...
    99+
    2022-10-24
  • 在Bash脚本中创建和使用数组方法总结
    在Bash中定义一个数组 有两种方法可以在bash脚本中创建新数组。第一个是使用declare命令来定义一个Array。此命令将定义名为test_array的关联数组。 $ declare -a test_array ...
    99+
    2022-06-04
    Bash脚本 数组
  • JS一维和二维数组的创建和访问方法
    这篇文章主要讲解了“JS一维和二维数组的创建和访问方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS一维和二维数组的创建和访问方法”吧!一维数组的创建和...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作