Numpy数组的创建(第一讲)

Numpy数组的创建 (第1讲)
       在这里插入图片描述

🍹博主 侯小啾 感谢您的支持与信赖。☀️
🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ

✨本博客收录于专栏Python数据分析30讲.。
✨专栏特点:
    ①逻辑清晰,循序渐进,符合初学者思维,内容友好程度高。
    ②内容精炼,且不失重点,入门时间周期短。性比价高。
    ③能够兼容非科班,如金融,经济,统计,数学等专业的小伙伴。
    ④附实战案例加持,搭乘数分精通之路的直通车!

✨更多精彩内容敬请期待,小啾持续为您输出中!

文章目录

  • 1.认识`numpy`数组
  • 2. `array( )` 函数
    • 2.1 `array()`函数创建一维数组
    • 2.2`array()`函数创建多维数组
    • 2.3 避坑:若传入字符串
  • 3. `arange()`函数
  • 4. `linspace()`函数 --等差数列
  • 5. `logspace()`函数 --等比数列
  • 6.`zeros`函数
  • 7. `ones()`函数
  • 8. `empty()`函数 创建全空数组
  • 9. `full()`函数 创建指定值填充的数组
  • 10. `eye()`函数 创建单位矩阵
  • 11. `diag()`方法 创建对角线矩阵数组


1.认识numpy数组

NumPy 数组是 NumPy 库中最重要的数据结构之一。所谓numpy数组,即ndarray对象。
它是一个一维或多维数组对象,可以存储相同类型的元素,并提供了许多功能强大的操作和函数来处理和分析数组数据。
通过使用 NumPy 数组,你可以进行各种数学运算、统计分析、线性代数操作、图像处理等。NumPy 数组是数据科学和机器学习领域中常用的工具,为快速、高效的数值计算提供了基础。
数组的维度,与线性代数中的矩阵类似。大家也完全可以按照矩阵的结构来理解。
这里用简单的文字示例,向大家传达数组从低维度到高维度的数据结构分布:

一维数组:
[1,2,3,4,5]

该数组shape为:(5,)

二维数组:
[ [1,2,3,4,5],
[6,7,8,9,10]
[11,12,13,14,15] ]


该数组的shape为(3,5)

三维数组:
[
[ [1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15] ]

[ [1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15] ]
]


该数组的shape为(2,3,5)

依次类推,按此规律延伸至n维数组。

n维数组······


2. array( ) 函数

Numpy数组可以通过array()函数创建。
array()函数的语法如下:

array(object,dtype=None, copy=True, order=‘K’, subok=False, ndmin=0)

odject:任何具有数组接口方法的对象。通常也可以理解为是一个可迭代对象 即可。
dtype:数据类型。
copy:布尔类型值,是否复制,默认为True。设为true可以避免对数组数据有修改操作时影响到原数组。具体见下文 “数组的复制” 部分。
order:元素在内存中出现的顺序,可以是"K"、“A”、“C”、"F"四个字符。
默认为“K”,表示元素在内存中出现的顺序。“C”表示按行排列,“F”表示按列排列。如果object是一个数组,则还可以是"A",表示原顺序。
subok:布尔类型。默认为False,表示返回的数组默认为基类数组。如果为True则将传递子类。
ndmin:生成数组的 最小维度。(最小,意味着可以大于这个数字,当不足这个数字时,补充到这个数字。)


2.1 array()函数创建一维数组

以一维数组为例,一个使用array()函数创建numpy数组的简单示例如下:

import numpy as nparray1 = np.array([1, 2, 3, 4, 5])  # 传入一个列表对象
print(array1)  # 查看array1
print(type(array1))  # 查看array1的类型
print(array1.shape)  # 查看array1的shape

这里给array()函数传入了一个列表对象,成功创建出一个ndarray对象。代码输出效果如下:
              在这里插入图片描述
通过ndarrayshape属性,可以查看数组的shape。


2.2array()函数创建多维数组

以创建二维数组为例,可以给array()函数传入一个可以描述数组结构的列表,这样就可以得到预期中的数组。
这样的列表的形式需要规整,且数据类型要统一,形如:

[ [1,2,3], [4,5,6] ]

代码示例如下:

import numpy as nplist1 = [[1,2,3,4,5],[6,7,8,9,10]]
array1 = np.array(list1)
print(array1)
print(type(array1))
print(array1.shape)

执行效果:
              在这里插入图片描述


2.3 避坑:若传入字符串

我们知道,字符串也是一种可迭代对象。
但是如果若传入的是一个长度为n个字符的字符串,则不会得到一个长度为n的一维数组。

import numpy as nparray1 = np.array("abcdefg")
print(array1)

              在这里插入图片描述


输出结果是一个长度为1的一维数组。程序不会选择对字符串进行分割。
虽然我们一般不会选择传入字符串,但是还是要注意这个误区。


3. arange()函数

PythonNumPy库中,arange函数用于创建一个等差数列数组。
该函数返回一个从起始值到终止值(不包括终止值)之间的指定步长的一维数组。

arange函数的基本语法如下:

numpy.arange(start, stop, step=1, dtype=None)

参数说明:

  • start:起始值。
  • stop:终止值(不包括在结果中)。
  • step:可选参数,步长(默认为1)。
  • dtype:可选参数,输出数组的数据类型。

代码使用示例:

import numpy as np# 创建一个从0到9的一维数组,默认步长为1
arr1 = np.arange(10)
print(arr1)
print("=================================================")# 创建一个从1到10(不包括10)的一维数组,步长为2
arr2 = np.arange(1, 10, 2)
print(arr2)
print("=================================================")# 创建一个从5到1(不包括1)的递减一维数组,步长为-1
arr3 = np.arange(5, 0, -1)
print(arr3)

代码执行效果:
       在这里插入图片描述


import numpy as nparray1 = np.arange(0, 10, 0.2)
print(array1)

       在这里插入图片描述

(此时结果数据类型是浮点类型)


4. linspace()函数 --等差数列

PythonNumPy库中,linspace函数用于创建一个等间距的线性数列数组。
该函数返回一个从起始点到终止点之间的指定数量的均匀间隔数组。
linspace函数的基本语法如下:

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

参数说明:

  • start:起始点。
  • stop:终止点。
  • num:可选参数,要生成的等间距数列中的元素数量(默认为50)。
  • endpoint:可选参数,如果为True,则终止点包含在等间距数列中;如果为False,则终止点不包含在等间距数列中(默认为True)。
  • retstep:可选参数,如果为True,则返回结果中包含数列的步长;如果为False(默认),则不包含步长。
  • dtype:可选参数,输出数组的数据类型。

代码示例:

import numpy as np# 创建一个包含5个元素的等间距数列,默认包含终止点
arr1 = np.linspace(1, 10, 5)
print(arr1)
print("=================================================")# 创建一个包含4个元素的等间距数列,不包含终止点,并返回数列的步长
arr2, step = np.linspace(0, 1, 4, endpoint=False, retstep=True)
print(arr2)
# 输出: [0.   0.25 0.5  0.75]
print(step)
print("=================================================")# 创建一个包含6个元素的等间距数列,指定数据类型为整数
arr3 = np.linspace(1, 10, 6, dtype=int)
print(arr3)

代码执行效果:
       在这里插入图片描述


5. logspace()函数 --等比数列

PythonNumPy库中,logspace函数用于创建一个等比数列形式的数组。
logspace函数的基本语法如下:

numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

参数说明:

  • start:起始点的对数值(默认为0)。
  • stop:终止点的对数值。
  • num:可选参数,要生成的等比数列中的元素数量(默认为50)。
  • endpoint:可选参数,如果为True,则终止点包含在等比数列中;如果为False,则终止点不包含在等比数列中(默认为True)。
  • base:可选参数,对数的底数(默认为10.0)。
  • dtype:可选参数,输出数组的数据类型。

代码示例:

import numpy as np# 创建一个包含5个元素的等比数列,默认以底数10计算
arr1 = np.logspace(1, 5, 5,dtype='int')
print(arr1)
print("=========================================================")
# 创建一个包含10个元素的等比数列,以底数2计算
arr2 = np.logspace(1, 10, 10, base=2,dtype='int')
print(arr2)
print("=========================================================")
# 创建一个包含6个元素的等比数列,以底数e(自然对数的底数)计算
arr3 = np.logspace(0, 5, 6, base=np.e)
print(arr3)

代码执行效果:
      在这里插入图片描述


6.zeros函数

PythonNumPy库中,zeros函数用于创建一个指定形状且元素全为0的数组。
该函数返回一个由0组成的数组。

zeros函数的基本语法如下:

numpy.zeros(shape, dtype=float, order='C')

参数说明:

  • shape:数组的形状,可以是一个整数或一个由整数组成的元组。
  • dtype:可选参数,数组的数据类型,默认为浮点型。
  • order:可选参数,指定数组在内存中的布局方式,可以是’C’(按行)、‘F’(按列)或’A’(原始顺序,默认)。

代码示例:

import numpy as np# 创建一个形状为(2, 3)的数组,元素全为0
arr1 = np.zeros((2, 3))
print(arr1)print("=================================================")# 创建一个形状为(3, 4, 2)的三维数组,元素全为0
arr2 = np.zeros((3, 4, 2))
print(arr2)

代码执行效果:
      在这里插入图片描述

zeros函数创建的数组中的元素均为0。如果希望创建初始值非零的数组,可以使用ones函数来创建元素全为1的数组,或者使用full函数来创建指定初始值的数组。


7. ones()函数

在Python的NumPy库中,ones函数用于创建一个指定形状且元素全为1的数组。该函数返回一个由1组成的数组。

ones函数的基本语法如下:

numpy.ones(shape, dtype=float, order='C')

参数说明:

  • shape:数组的形状,可以是一个整数或一个由整数组成的元组。
  • dtype:可选参数,数组的数据类型,默认为浮点型。
  • order:可选参数,指定数组在内存中的布局方式,可以是’C’(按行)、‘F’(按列)或’A’(原始顺序,默认)。

代码示例:

import numpy as np# 创建一个形状为(2, 3)的数组,元素全为1
arr1 = np.ones((2, 3))
print(arr1)
print("=================================================")# 创建一个形状为(3, 4, 2)的三维数组,元素全为1
arr2 = np.ones((3, 4, 2))
print(arr2)

代码执行效果:
      在这里插入图片描述


8. empty()函数 创建全空数组

PythonNumPy库中,empty函数用于创建一个指定形状和数据类型的空数组。该函数返回一个未初始化的数组,即它的元素可以是任意值。

empty函数的基本语法如下:

numpy.empty(shape, dtype=float, order='C')

参数说明:

  • shape:数组的形状,可以是一个整数或一个由整数组成的元组。
  • dtype:可选参数,数组的数据类型,默认为浮点型。
  • order:可选参数,指定数组在内存中的布局方式,可以是’C’(按行)、‘F’(按列)或’A’(原始顺序,默认)。

代码示例:

import numpy as np# 创建一个2x3的空数组
arr1 = np.empty((2, 3))
print(arr1)print("======================================================================")# 创建一个3维的空数组
arr2 = np.empty((2, 3, 4))
print(arr2)

代码执行效果:
      在这里插入图片描述

需要注意的是,empty函数创建的数组不会像zeros函数一样将元素初始化为0,而是保留了数组在内存中原有的内容。因此,使用empty函数创建的数组的值是未知的,可能包含任意值。如果希望创建一个初始值全为0的数组,可以使用zeros函数;如果希望创建一个初始值全为1的数组,可以使用ones函数。


9. full()函数 创建指定值填充的数组

PythonNumPy库中,full函数用于创建一个指定形状和初始值的数组。该函数返回一个由指定值组成的数组。

full函数的基本语法如下:

numpy.full(shape, fill_value, dtype=None, order='C')

参数说明:

  • shape:数组的形状,可以是一个整数或一个由整数组成的元组。
  • fill_value:初始值,可以是一个标量或一个数组。
  • dtype:可选参数,数组的数据类型,默认为None(使用fill_value的数据类型)。
  • order:可选参数,指定数组在内存中的布局方式,可以是’C’(按行)、‘F’(按列)或’A’(原始顺序,默认)。

代码示例:

import numpy as np# 创建一个形状为(2, 3)的数组,所有元素都为2.5
arr1 = np.full((2, 3), 2.5)
print(arr1)print("=================================================")# 创建一个形状为(3, 4, 2)的三维数组,所有元素都为7
arr2 = np.full((3, 4, 2), 7)
print(arr2)

代码执行效果:
      在这里插入图片描述


10. eye()函数 创建单位矩阵

PythonNumPy库中,eye函数用于创建一个单位矩阵。
单位矩阵是一个正方形矩阵,对角线上的元素为1,其余元素为0。

eye函数的基本语法如下:

numpy.eye(N, M=None, k=0, dtype=float, order='C')

参数说明:

  • N:生成的单位矩阵的行数。
  • M:可选参数,生成的单位矩阵的列数,默认为None(即生成N×N的方阵)。
  • k:可选参数,对角线偏移量。正值表示对角线位于主对角线之上,负值表示对角线位于主对角线之下,默认为0(即主对角线)。
  • dtype:可选参数,输出数组的数据类型,默认为浮点型。
  • order:可选参数,指定数组在内存中的布局方式,可以是’C’(按行)、‘F’(按列)或’A’(原始顺序,默认)。

代码示例:

import numpy as np# 创建一个3×3的单位矩阵
arr1 = np.eye(3)
print(arr1)
print("=================================================")# 创建一个2×4的单位矩阵,并将对角线向上偏移1个位置
arr2 = np.eye(2, 4, k=1)
print(arr2)
print("=================================================")# 创建一个5×5的整数类型的单位矩阵
arr3 = np.eye(5, dtype=int)
print(arr3)

代码执行效果:
      在这里插入图片描述


11. diag()方法 创建对角线矩阵数组

PythonNumPy库中,diag函数用于:

①提取一个方阵的对角线元素
或者
②构造一个以给定一维数组为对角线元素的方阵。

diag函数的基本语法如下:

numpy.diag(v, k=0)

参数说明:

  • v:输入的一维数组。
  • k:可选参数,对角线偏移量。正值表示对角线位于主对角线之上,负值表示对角线位于主对角线之下,默认为0(即主对角线)。

示例使用:

import numpy as np# 创建一个二维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 提取数组的主对角线元素
diag_elements = np.diag(arr)
print(diag_elements)
print("=================================================")# 构造一个以给定一维数组为对角线元素的方阵
diagonal1 = [1, 2, 3]
matrix1 = np.diag(diagonal1)
print(matrix1)
print("=================================================")# 在主对角线上方构造一个以给定一维数组为对角线元素的方阵
diagonal2 = [4, 5, 6]
matrix2 = np.diag(diagonal2, k=1)
print(matrix2)

代码执行效果:
      在这里插入图片描述

diag函数可以用来提取一个方阵的对角线元素,也可以用来构造一个以给定一维数组为对角线元素的方阵。通过设置k参数可以控制对角线的偏移。当k=0时,提取或构造的是主对角线上的元素;当k>0时,提取或构造的是主对角线上方的元素;当k<0时,提取或构造的是主对角线下方的元素。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/255626.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【hacker送书第10期】AI时代系列丛书(五选一)

AI时代系列丛书 AI时代程序员开发之道✨内容简介参与方式 AI时代项目经理成长之道✨内容简介参与方式 AI时代架构师修炼之道✨内容简介参与方式 AI时代产品经理升级之道✨内容简介参与方式 AI时代Python量化交易实战✨内容简介参与方式 AI时代程序员开发之道✨ 内容简介 本书是…

VBA技术资料MF93:将多个Excel表插入PowerPoint不同位置

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

私域最全养号攻略---微信

微信号的使用规则&#xff1a; 注册新微信、微信实名认证、主动添加好友、面对面建群、被动添加好友、进群限制、朋友圈限制、好友上限 微信权重加分规则&#xff1a; 基础信息是否完整、注册时间、微信使用行为、 微信权重扣分规则&#xff1a; 使用的环境是否正常、部分行为会…

C++新经典模板与泛型编程:SFINAE特性的信息萃取

用成员函数重载实现is_default_constructible 首先介绍一个C标准库提供的可变参类模板std::is_default_constructible。这个类模板的主要功能是判断一个类的对象是否能被默认构造&#xff08;所谓默认构造&#xff0c;就是构造一个类对象时&#xff0c;不需要给该类的构造函数…

广告电商模式:看广告还能赚钱

随着互联网的快速发展和普及&#xff0c;电子商务和广告行业也在不断演变和创新。在此背景下&#xff0c;一种新型的商业模式——广告电商模式应运而生。这种模式将广告与电子商务相结合&#xff0c;通过精准营销和用户参与&#xff0c;实现了广告主、电商平台和消费者的三方共…

iOS-打包上架构建版本一直不出现

iOS开发过程中&#xff0c;打包上架苹果审核是一个不可或缺的环节。说实话&#xff0c;这个问题我遇见两次了&#xff0c;为了让自己长点记性&#xff0c;决定写下来。首先&#xff0c;列举几种情况&#xff1a; 1.iPa包上传至App store后&#xff0c;一个小时内不显示构建版本…

探索正则可视化工具:让编程更直观、高效

导语&#xff1a;在当今的编程世界中&#xff0c;正则表达式已成为不可或缺的技能。然而&#xff0c;理解和编写正则表达式往往是一项具有挑战性的任务。为了降低门槛&#xff0c;提高编程效率&#xff0c;正则可视化工具应运而生。 一、正则表达式的简介与历史 正则表达式&a…

vue2-使用vue-i18n搭建多语言切换环境

安装 注意&#xff1a;vue2.0要用8版本的&#xff0c;使用9版本的会报错 npm install vue-i18n8.27.0 --save 创建相关的语言包文件 在src目录下&#xff0c;新建i18n文件夹 在新文件夹i18n中新建langs文件夹&#xff0c;里边放语言文本文件.js zh.js&#xff1a;存…

11.Java安卓程序设计-基于SSM框架的Android平台健康管理系统的设计与实现

摘要 随着人们生活水平的提高和健康意识的增强&#xff0c;健康管理系统在日常生活中扮演着越来越重要的角色。本研究旨在设计并实现一款基于SSM框架的Android平台健康管理系统&#xff0c;为用户提供全面的健康监测和管理服务。 在需求分析阶段&#xff0c;我们明确了系统的…

[Python]字典的应用:赋值表达式转化为字典

文件中有很多行&#xff0c;每行中一个等号&#xff0c;等号左边是键右边是值&#xff0c;如何把这些键值对获取到 def read_key_value_pairs(file_path):key_value_pairs {}i 0# 注意解码格式与编码格式相统一with open(file_path, r, encodingutf-8) as file:for line in…

企业IT外包的四种类型

出于不同因素的考虑&#xff0c;企业在选择IT外包服务时&#xff0c;会对不同类型有所倾向。IT外包服务根据内容的复杂性和可达到的效率划分为四种类型&#xff0c;一起来选择最适合你的企业的服务吧&#xff01; 1. 成本考虑型&#xff1a; 这一类型的IT外包主要关注的是降低成…

mixamo根动画导入UE5问题:滑铲

最近想做一个跑酷游戏&#xff0c;从mixamo下载滑铲动作后&#xff0c;出了很多动画的问题。花了两周时间&#xff0c;终于是把所有的问题基本上都解决了。 常见问题&#xff1a; 1.【动画序列】人物不移动。 2.【动画序列】人物移动朝向错误。 3.【蒙太奇】人物移动后会被拉回…