NumPy 创建数组

NumPy 中的核心数据结构是 ndarray,它代表多维数组。NumPy 提供了多种方法来创建 ndarray 对象,包括:

使用 array() 函数

array() 函数是最常用的方法之一,它可以将 Python 列表、元组甚至其他数组转换为 ndarray 对象。

语法:

ndarray = np.array(data, dtype=dtype, order=order)

参数说明:

data:可以是 Python 列表、元组或其他数组。

dtype:指定数组元素的数据类型,默认为 float64

order:指定数组元素的内存存储顺序,默认为 C 顺序(行优先)。

示例:

import numpy as np

# 创建一维数组
arr1 = np.array([1, 2, 3, 4, 5]) # 创建二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]]) # 创建三维数组
arr3 = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) print(arr1)
print(arr2)
print(arr3)

输出:

[1 2 3 4 5]
[[1 2 3]
[4 5 6]]
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]]

使用 zeros()ones() 函数

zeros()ones() 函数可以创建指定形状和数据类型的全零或全一数组。

语法:

ndarray = np.zeros(shape, dtype=dtype)
ndarray = np.ones(shape, dtype=dtype)

参数说明:

shape:指定数组的形状,可以是元组或列表。

dtype:指定数组元素的数据类型,默认为 float64

示例:

import numpy as np

# 创建一个 3x4 的全零数组
arr1 = np.zeros((3, 4)) # 创建一个 2x3 的全一数组
arr2 = np.ones((2, 3)) print(arr1)
print(arr2)

输出:

[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
[[1. 1. 1.]
[1. 1. 1.]]

使用 empty() 函数

empty() 函数可以创建指定形状的空数组,但数组元素的值未定义。

语法:

ndarray = np.empty(shape, dtype=dtype)

参数说明:

shape:指定数组的形状,可以是元组或列表。

dtype:指定数组元素的数据类型,默认为 float64

示例:

import numpy as np

# 创建一个 3x4 的空数组
arr = np.empty((3, 4)) print(arr)

输出:

[[nan nan nan nan]
[nan nan nan nan]
[nan nan nan nan]]

使用特殊函数

NumPy 还提供了一些特殊函数来创建特定类型的数组,例如:

arange():创建等差数列数组。

linspace():创建线性间隔的数组。

eye():创建单位矩阵。

diag():创建对角矩阵。

请参考 NumPy 文档了解有关这些函数的更多信息。

练习

创建以下数组:

一个包含 10 个元素的递增整数数组(从 0 到 9)。

一个包含 20 个元素的随机浮点数数组(范围为 0 到 1)。

一个 3x3 的单位矩阵。

请在评论中分享您的答案。

Sure, here is the requested Markdown formatted content:

NumPy 数组索引

NumPy 数组可用于表示多维数据。访问数组元素是 NumPy 中常见操作之一。

访问一维数组元素

NumPy 数组中的索引从 0 开始,这意味着第一个元素的索引为 0,第二个元素的索引为 1,依此类推。

要访问一维数组中的元素,可以使用方括号 [] 并指定元素的索引。

示例:

import numpy as np

# 创建一维数组
arr = np.array([1, 2, 3, 4, 5]) # 访问第一个元素
print(arr[0]) # 输出:1 # 访问第二个元素
print(arr[1]) # 输出:2 # 访问最后一个元素
print(arr[-1]) # 输出:5

访问二维数组元素

要访问二维数组中的元素,可以使用逗号分隔的两个索引:第一个索引表示行,第二个索引表示列。

示例:

import numpy as np

# 创建二维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 访问第一行第一个元素
print(arr[0, 0]) # 输出:1 # 访问第二行第三列元素
print(arr[1, 2]) # 输出:6 # 访问最后一个元素
print(arr[-1, -1]) # 输出:9

访问三维及更高维数组元素

对于三维及更高维数组,可以使用逗号分隔的多个索引来访问元素,每个索引表示相应维度的索引。

示例:

import numpy as np

# 创建三维数组
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) # 访问第一个数组的第二个数组的第三个元素
print(arr[0, 1, 2]) # 输出:6

负索引

NumPy 还支持负索引,从数组的末尾开始计数。

例如,要访问二维数组的最后一个元素,可以使用 arr[-1, -1]

练习

创建一个 5x5 的二维数组 arr,并打印以下元素:

第一行的第一个元素

第二行的最后一个元素

第三列的第一个元素

第三个元素

在评论中分享您的代码和输出。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎点赞、收藏、关注

NumPy 数组创建方法与索引访问详解的更多相关文章

  1. numpy 数组创建例程

    1 numpy.empty empty(shape[, dtype=float, order='C']) 创建指定 shape 和dtype 的未初始化数组 返回:ndarray. 说明:order ...

  2. NumPy数组创建例程

    NumPy - 数组创建例程 新的ndarray对象可以通过任何下列数组创建例程或使用低级ndarray构造函数构造. numpy.empty 它创建指定形状和dtype的未初始化数组. 它使用以下构 ...

  3. NumPy 数组创建

    章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基于数值区间创建数组 NumPy 数组切 ...

  4. ContentProvider数据访问详解

    ContentProvider数据访问详解 Android官方指出的数据存储方式总共有五种:Shared Preferences.网络存储.文件存储.外储存储.SQLite,这些存储方式一般都只是在一 ...

  5. 0614MySQL的InnoDB索引原理详解

    转自http://www.cnblogs.com/shijingxiang/articles/4743324.html MySQL的InnoDB索引原理详解 http://www.admin10000 ...

  6. numpy的文件存储.npy .npz 文件详解

    Numpy能够读写磁盘上的文本数据或二进制数据. 将数组以二进制格式保存到磁盘 np.load和np.save是读写磁盘数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 ...

  7. Numpy数组对象的操作-索引机制、切片和迭代方法

    前几篇博文我写了数组创建和数据运算,现在我们就来看一下数组对象的操作方法.使用索引和切片的方法选择元素,还有如何数组的迭代方法. 一.索引机制 1.一维数组 In [1]: a = np.arange ...

  8. Swift3中数组创建方法

    转载自:http://blog.csdn.net/bwf_erg/article/details/70858865 数组是由一组类型相同的元素构成的有序数据集合.数组中的集合元素是有 序的,而且可以重 ...

  9. MySQL索引优化详解

    MySQL存储引擎简介 查看命令 a. 查看所使用的MySQL现在已提供什么存储引擎: mysql> show engines; b. 查看所使用的MySQL当前默认的存储引擎: mysql&g ...

  10. 加密方法与HTTPS 原理详解

    一:加密方法: 1,对称加密 AES,3DES,DES等,适合做大量数据或数据文件的加解密. 2,非对称加密 如RSA,Rabin.公钥加密,私钥解密.对大数据量进行加解密时性能较低. 二:https ...

随机推荐

  1. 基于rv1126 rkmeida 一路多出 原理

    基于rv1126 rkmeida 一路多出的坑 首先说要的是介绍一下rkmedia 相关内容 ​ RKMedia提供了一种媒体处理方案,可支持应用软件快速开发.RKMedia在各模块基础API上做进一 ...

  2. ABC326 A-F

    vp on 2023.11.12 A.B:略. C:双指针或者二分. D:暴搜+剪枝,每一行的计算量最多是 $60$. E:期望相关.计算每个点的概率,乘上这个点的权值,并求和即可. F:meet i ...

  3. MarkDown常用语法Typora

    一级标题:左右分别 # 二级标题:左右分别 ## 三级标题 四级标题 五级标题 六级标题 加粗:左右分别 ** 斜体:左右分别 * 斜体加粗:左右分别 *** 删除:左右分别 ~~ "> ...

  4. 哈希表(HashTable)

    哈希表 哈希表:也叫做散列表.是根据关键字和值(Key-Value)直接进行访问的数据结构.也就是说,它通过关键字 key 和一个映射函数 Hash(key) 计算出对应的值 value,然后把键值对 ...

  5. Windows开发的瑞士军刀,NewSPYLite发布

    宗旨:延续了SpyLite的方便易用,同时也丰富了更多的功能,更适合开发者使用. 在SpyLite的基础功能上,开发了更多人性化并且好用的功能,增强的信息的可读性,以及软件总体的可用性. New Sp ...

  6. 掌握 C++ 编译过程:面试中常见问题解析

    C++是一种高级编程语言,但是计算机并不能直接理解它.因此,需要将C++代码翻译成计算机可以理解的机器语言.这个过程就是编译过程,是C++程序从源代码到可执行文件的转换过程,包括预处理.编译.汇编和链 ...

  7. 设置 BCompare 打开文件时的默认字符编码

    每次比对 .h .cpp 文件,BCompare总是默认以西欧字符编码打开文件,导致中文都变成乱码了,还需要手动的修改文件字符编码,这样才能正常的显示.非常的不方便 然后我们就需要设置默认的字符编码, ...

  8. 数据库自增ID用完了会怎么样?

    记一个数据库方面的面试题:数据库自增ID用完了会怎么样? MySQL中 int 类型是4个字节,如果是有符号,那就是 [ -2^31 , 2^31-1 ], 如果是无符号,那就是 [ -2^31 , ...

  9. HarmonyOS后台任务管理开发指南上线!

      为什么要使用后台任务?开发过程中如何选择合适的后台任务?后台任务申请时存在哪些约束与限制? 针对开发者使用后台任务中的疑问,我们上线了概念更明确.逻辑结构更清晰的后台任务开发指南,包含具体的使用场 ...

  10. CTR预估系列模型漫谈

    FM FM的主要内容 了解fm模型之前,需要先说一下lr带入一下场景.lr作为早期ctr预估里面的模型,其速度上有着无可比拟的优势,而偏偏ctr场景下伴随着有大量的离散特征,高维稀疏特征,这个很适合l ...