如何创建数组Numpy

一、认识Numpy

NumPy,更像是一个魔方(见图),它是Python数组计算、矩阵运算和科学计算的核心库,NumPy这个词来源于Numerical Python 两个单词。NumPy提供了一个商性能的数组对象。让我们轻松创建一维数组、二维数组和多维数组,以及大量的函数和方法,帮助我们轻松地进行数组计算,从而广泛地应用于数据分析、机器学习、图像处理和计算机图形学、数学任务等领域当中。

NumPy的用途是以数组的形式对数据进行操作。机器学习中充斥了大量的数组运算,而NumPy使得这些操作变得简单!由于NumPy是C语言实现的,所以其运算速度非常快。具体功能如下。
1.有一个强大的n维数组对象ndarray。
2.广播功能函数。
3.线性代数、傅立叶变换、随机数生成、图形操作等功能。
4.整合C/C++/Fortran代码的工具。

二、创建数组

学习Numpy前,我们先了解一下数组的相关概念。数组可分为一维数组、二维数组、三维数组,其中三维数组是常见的多维数组。

1.数组的相关概念

1.一维数组

一维数组很简单,基本和Python列表一样,区别于数组切片针对的是原始数组(这意味着,如果对数组进行修改,原始数组也会跟着更改)。

2.二维数组

二维数组本质是以数组作为数组元素的数组。二位数组包括行和列,类似于表格形式,又称为矩阵。

3.三维数组

三维数组是指维数为3的数的结构,也称矩阵列表。三维数组是最常见的多维数组,由于可以用来描述三维空间中的位置或状态而被广泛使用。

2.创建简单的数组

Numpy创建简单的数组主要使用array()函数,语法如下:

numpy.arry(object,dtype=None,copy=True,order='K',subok=Flase,ndmin=0)

参数说明:
object:任何具有数组接口方法的对象。
dtype:数据类型。
copy:布尔型,可选参数,默认值为True,则object 对象被复制:否则,只有当_amray_返回副本,object 参数为嵌套序列,或者需要副本满足数据类型和顺序要求时,才会生成副本。order:元素在内存中的出现顺序,值为K、A、C、F。如果object 参数不是数组,则新创建的数组将按行排列(C),如果值为F,则按列排列;如果object 参数是一个数组,则C(按行)、F(按列)、A(原顺序)、K(元素在内存中的出现顺序)成立。
subok:布尔型。如果值为True,则将传递子类;否则返回的数组将强制为基类数组(默认值)。
ndmin:指定生成数组的最小维数。
演示如何创建数组
创建几个简单的数组,效果如图

程序代码如下:

import numpy as np   #导入Numpy模块
n1=np.array([1,2,3])   #创建一个简单的数组
n2=np.array([0.1,0.2,0.3])  #创建一个包含小数的一维数组
n3=np.array([1,2],[3,4])   #创建一个简单的二维数组

(2.1)为数组指定数据类型

Numpy支持比Python更多种类的数据类型,通过dtype参数可以指定数组的数据类型,程序代码:

import numpy as np
list=[1,2,3]
#创建浮点型数组
n1=np.array(list,dtype=np.float_)

运行程序,输出结果如下:

[1,2,3]
float64
<class'numpy.float64'>

(2.2)数组的复制

当运算和处理数组时,为了不影响到原数组,就需要对原数组进行复制,而对复制后的数组进行修改删除等操作都不会影响到原数组。数组的复制可以通过copy参数实现,程序代码如下:

import numpy as np
n1=np.array([1,2,3])
n2=np.array(n1,copy=True)
n2[0]=3
n2[2]=1
print(n1)
print(n2)

运行程序,输出结果如下:

[1,2,3]
[3,2,1]

(2.3)通过ndmin参数控制最小维数

无论给出的数组的维数是多少,ndmin参数都会根据最小维数创建指定维数的数组。

ndmin=3,虽然给出的数组是一维数组,但是同样会创建一个三维数组,程序代码如下: 

import numpy as np
nd1=[1,2,3]
nd2=np.array(nd1,ndmin=3)
print(nd2)

运行程序,输出结果如下:

[[[1 2 3]]]

(2.4)生成随机数组

(2.4.1)rand()函数

rand()函数用于生成(0,1)之间的随机数组,传入一个值随机生成一维数组,传入一对值则随机生成二维数组,语法如下:

numpy.random.rand(d0,d1,d2,d3,...,dn)

参数d0,d1,...,dn为整数,可以为空。

【示例】随机生成0~1的数组。

随机生成一维数组和二维数组,代码如下:

import numpy as np
n=np.random.rand(5)
print('随机生成0~1的一维数组: ')
print(n)
n1=np.random.rand(2,5)
print('随机生成0~1的二维数组: ')
print(n1)

运行程序,输出结果如下:

(2.4.2)randn()函数

)randn()函数用于从正态分布中返回随机生成的数组,语法如下:

numpy.random.randn(d0,d1,d2,d3,...,dn)

【示例】随机生成满足正态分布的数组,程序代码如下:

import numpy as np
n1=np.random.randn(5)
print('随机生成满足正态的一维数组: ')
print(n1)
n2=np.random.randn(2,5)
print('随机生成满足正态分布二维数组: ')
print(n2)

运行程序,输出结果如下:

(2.4.3)randint()函数

randint()函数于Numpy的arange函数类似。randint()函数用于生成一定范围内的随机数组,左闭右开区间,语法如下:

numpy.random.randint(low,high=None,size=None)

【示例】生成一定范围内的随机函数,程序代码如下:

import numpy as np
n1=np.random.randint(1,3,10)
print('随机生成10个1~3且不包括3的整数: ')
print(n1)
n2=np.random.randint(5,10)
print(n2)
n3=np.random.randint(5,size=(2,5))
print('随机生成5以内二维数组')
print(n3)

运行程序,输出结果如下:

(2.4.4)normal()函数

normal用于生成正态分布的随机数,语法如下:

numpy.random.normal(loc,scale,size)

【示例】生成正态分布的随机函数

import numpy as np
n=np.random.normal(0,0.1,10)
print(n)

运行程序,输出结果如下:

以上总结,我们可以认识到numpy数组,有一维数组,二维数组,三维数组,还有能够掌握的一些常用操作,可以为数组指定数据类型,还有数组的复制,通过ndmin参数控制最小维数,还有学习到生成随机数组,有rand()函数,randn()函数,randint()函数,normal()函数。另外,当数据量非常大时,numpy可以带来百倍以上的提升。

本文文章链接:如何创建数组Numpy-CSDN博客

  • 26
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值