python中NumPy的安装与基本操作

目录
  • Numpy是什么
  • NumPy的安装
  • 多维数组
    • 创建多维数组
    • 多维数组的常用属性
  • 多维数组的基本操作
    • 数组的算术运算
    • 数组的自身运算
    • 随机数组
    • 索引、切片、迭代
  • 总结

Numpy是什么

很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数。如果接触过matlab、scilab,那么numpy很好入手。

NumPy是一个高性能的科学计算和数据分析基础包。

NumPy的安装

NumPy的安装相对简单,我们可以通过Anaconda中的命令进行安装,也可以通过“pip install numpy" 语句对NumPy进行安装。如果需要验证NumPy是否安装成功,则可以在NumPy安装完成后通过输入“import numpy"后运行,看看是否输出报错提示。

多维数组

创建多维数组

import numpy as np

#用array来创建
a=np.array([1,2,3])  #创建一维数组
print(a)

b=np.array([[1,2,3],[4,5,6]])  #创建高维数组
print(b)

#使用NumPy中的ones创建维度指定且元素全是1的数组
c=np.ones([2,3])   #全是1的数组

print(c)

c[1,2]=3 #对数组中的元素进行覆盖

print(c)

#创建维度制定且元素全为0的数组
d=np.zeros([2,3])

print(d)

#创建维度指定且元素全为随机数的数组
e=np.empty([2,3])
print(e)

多维数组的常用属性

ndim:返回统计的数组维数,即维度的数量

#创建维度指定且元素全为随机数的数组
e=np.empty([2,3])
print(e)

print(e.ndim)

结果:

[[0. 0. 0.]
 [0. 0. 0.]]
2

shape:返回数组的维度值,对返回的结果使用一个数据类型为整型的元组来表示,比如一个二维数组返回的结果为(n,m),那么n和m表示数组中对应维度的数据的长度。如果使用shape输出的是矩阵的维度,那么在输出的(n,m) 中,n表示矩阵的行,m表示矩阵的列。

#创建维度指定且元素全为随机数的数组
e=np.empty([2,3])
print(e)

print(e.shape)

结果:

[[0. 0. 0.]
 [0. 0. 0.]]
(2, 3)

size:返回要统计的数组中的元素的总数量

#创建维度指定且元素全为随机数的数组
e=np.empty([2,3])
print(e)

print(e.size)

结果:

[[0. 0. 0.]
 [0. 0. 0.]]
6

dtype:返回数组中的元素的数据类型。不过其显示的数据类型和我们之前定义的变量的数据类型名有所区别,因为这些数据类型都是使用NumPy 进行定义的,而在NumPy中表示数据类型使用的是numpy.int32、numpy.int16和numpy.float64这类格式的名字

#创建维度指定且元素全为随机数的数组
e=np.empty([2,3])
print(e)

print(e.dtype)

结果:

[[0. 0. 0.]
 [0. 0. 0.]]
float64

多维数组的基本操作

数组的算术运算

数组能够直接进行加法、减法、乘法和除法算术运算

import numpy as np
g=np.array([1,2,3])
h=np.array([4,5,6])
print("a-b-",a-b) #打印a-b的结果
print("a+b =",a+b) #打印a+b的结果
print("a/b =",a/b) #打印a/b的结果
print("a*b =",a*b) #打印a*b的结果

结果:

a-b- [-3 -3 -3]
a+b = [5 7 9]
a/b = [0.25 0.4  0.5 ]
a*b = [ 4 10 18]
 
Process finished with exit code 0

从上面的实例可以看出,虽然数组在构造上类似于矩阵,但是其运算和之前介绍的矩阵运算存在诸多不同:首先,矩阵是不存在除法运算的,但是数组能够进行除法运算:其次,数组的乘法运算机制是通过将位置对应的元素相乘来完成的,和矩阵的乘法运算机制不同。下面来看看如何通过数组实现矩阵乘法运算。

a=np.array([1,2,3])
b=np.array([4,5,6])
print("a-b-",a-b) #打印a-b的结果
print("a+b =",a+b) #打印a+b的结果
print("a/b =",a/b) #打印a/b的结果
print("a*b =",a*b) #打印a*b的结果

c = a.dot(b)

print("Matrix1: a*b =",c)  #打印a*b的结果

d = np.dot(a,b)

print("Matrix2: a*b",c)  #打印a*b的结果在运行后,输出的内容

结果:

a-b= [-3 -3 -3]
a+b = [5 7 9]
a/b = [0.25 0.4  0.5 ]
a*b = [ 4 10 18]
Matrix1: a*b = 32
Matrix2: a*b 32
 
Process finished with exit code 0

在以上代码中使用了两种方法来实现矩阵的乘法运算,其计算结果是一样的。数组和矩阵的算术运算还有一个较大的不同点,就是数组可以直接和标量进行算术运算,但是在矩阵运算中是不可以的。

a = np.array([1,2,3])

print ("a * 2 =",a*2)
print("a 1 2 =",a/2)
print("a - 2 =",a-2)
print("a + 2 =",a+2)

结果:

a * 2 = [2 4 6]
a 1 2 = [0.5 1.  1.5]
a - 2 = [-1  0  1]
a + 2 = [3 4 5]

数组的自身运算

(1)min:默认找出数组的所有元素中值最小的元素,可以通过设置axis的值来按行或者列查找元素中的最小值。

(2) max:默认找出数组的所有元素中值最大的元素,可以通过设置axis的值来按行或者列查找元素中的最大值。

(3) sum:默认对数组中的所有元素进行求和运算,并返回运算结果,同样可以通过设置axis的值来按行或者列对元素进行求和运算。

(4) exp:对数组中的所有元素进行指数运算。

(5) sqrt: 对数组中的所有元素进行平方根运算。

(6) square:对数组中的所有元素进行平方运算。

随机数组

生成随机数在我们平时的应用中是很有用的,在NumPy中有许多方法可以生成不同属性的随机数,以满足在计算中使用随机数字的需求。

(1) seed: 随机因子,在随机数生成器的随机因子被确定后,无论我们运行多少次随机程序,最后生成的数字都是一样的,随机因子更像把随机的过程变成一种 伪随机的机制,不过这有利于结果的复现。

(2) rand: 生成一个在[0,1)范围内满足均匀分布的随机样本数。

(3) randn:生成一个满足平均值为0且方差为1的正太分布随机样本数。

(4)randint:在给定的范围内生成类型为整数的随机样本数。

(5) binomial: 生成-个维度指定且满足二项分布的随机样本数。

(6) beta:生成一个指定维度且满足beta分布的随机样本数。

(7) normal: 生成一个指定维度且满足高斯正太分布的随机样本数。

索引、切片、迭代

在数组中也有索引、切片和迭代,其操作过程和列表类似,不过多维数组相较于一维数组,在索引、切片和迭代等操作上会更复杂。

a = np.arange(10)

print(a) #输出整个数组
print(a[:5]) #输出数组的前 五个元素
for i in a:    #迭代输出数组的全部元素
    print (i)

结果:

[0 1 2 3 4 5 6 7 8 9]
[0 1 2 3 4]
0
1
2
3
4
5
6
7
8
9
 
Process finished with exit code 0

总结

到此这篇关于python中NumPy安装与基本操作的文章就介绍到这了,更多相关python中NumPy基本操作内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python遍历numpy数组的实例

    在用python进行图像处理时,有时需要遍历numpy数组,下面是遍历数组的方法: [rows, cols] = num.shape for i in range(rows - 1): for j in range(cols-1): print(num[j, i]) 以上这篇Python遍历numpy数组的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: Python Numpy 数组的初始化和基本操作 python中numpy包使用教程之

  • 基于Python Numpy的数组array和矩阵matrix详解

    NumPy的主要对象是同种元素的多维数组.这是一个所有的元素都是一种类型.通过一个正整数元组索引的元素表格(通常是元素是数字). 在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank,但是和线性代数中的秩不是一样的,在用python求线代中的秩中,我们用numpy包中的linalg.matrix_rank方法计算矩阵的秩,例子如下). 结果是: 线性代数中秩的定义:设在矩阵A中有一个不等于0的r阶子式D,且所有r+1阶子式(如果存在的话)全等于0,那末D称为矩阵

  • 讲解Python3中NumPy数组寻找特定元素下标的两种方法

    引子 Matlab中有一个函数叫做find,可以很方便地寻找数组内特定元素的下标,即:Find indices and values of nonzero elements. 这个函数非常有用.比如,我们想计算图1中点Q(x0, y0)抛物线的最短距离.一个可以实施的方法是:计算出抛物线上所有点到Q点的距离,找到最小值,用find函数找到最小值对应的下标,即M点横坐标和纵坐标对应的元素的下标,M点到Q点的距离就是最短距离. 首先给出Matlab使用find函数实现的代码: a = linspac

  • python中numpy的矩阵、多维数组的用法

    1. 引言 最近在将一个算法由matlab转成python,初学python,很多地方还不熟悉,总体感觉就是上手容易,实际上很优雅地用python还是蛮难的.目前为止,觉得就算法仿真研究而言,还是matlab用得特别舒服,可能是比较熟悉的缘故吧.matlab直接集成了很多算法工具箱,函数查询.调用.变量查询等非常方便,或许以后用久了python也会感觉很好用.与python相比,最喜欢的莫过于可以直接选中某段代码执行了,操作方便,python也可以实现,就是感觉不是很方便. 言归正传,做算法要用

  • Python Numpy 数组的初始化和基本操作

    Python 是一种高级的,动态的,多泛型的编程语言.Python代码很多时候看起来就像是伪代码一样,因此你可以使用很少的几行可读性很高的代码来实现一个非常强大的想法. 一.基础: Numpy的主要数据类型是ndarray,即多维数组.它有以下几个属性: ndarray.ndim:数组的维数 ndarray.shape:数组每一维的大小 ndarray.size:数组中全部元素的数量 ndarray.dtype:数组中元素的类型(numpy.int32, numpy.int16, and num

  • python中找出numpy array数组的最值及其索引方法

    在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值对应的索引 但在numpy中的array没有index方法,取而代之的是where,其又是list没有的 首先我们可以得到array在全局和每行每列的最大值(最小值同理) >>> a = np.arange(9).reshape((3,3)) >>> a array([[0, 1, 2], [9, 4, 5], [6, 7, 8]]) >>&

  • python 实现将Numpy数组保存为图像

    第一种方案 可以使用scipy.misc,代码如下: import scipy.misc misc.imsave('out.jpg', image_array) 上面的scipy版本会标准化所有图像,以便min(数据)变成黑色,max(数据)变成白色.如果数据应该是精确的灰度级或准确的RGB通道,则解决方案为: import scipy.misc misc.toimage(image_array, cmin=0.0, cmax=...).save('outfile.jpg') 第二种方案 使用P

  • Python numpy实现二维数组和一维数组拼接的方法

    撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape 输出的值应该为(3,) 二维数组 2.numpy初始化二维数组 a = np.array([[1,2,3]]); b = np.array([[1],[2],[3]]); print a.shape//(1,3) print b.shape//(3,1) 注意(3,)和(3,1)的数组是不一样的,前者是一维数组,后者是二维数组. 拼接 3.numpy有很

  • Python 取numpy数组的某几行某几列方法

    直接分析,如原矩阵如下(1): (1) 我们要截取的矩阵(取其一三行,和三四列数据构成矩阵)为如下(2): (2) 错误分析: 取 C 的1 3行,3 4 列,定义 Z = [0,2] #定义行数 d = [2,3] #定义列数 #代码 C_zd = C[z,d] 则结果为: 由结果分析取的是第一行第三列和第三行第四列的数据,并非我们想要的结果. 正确分析: C_A = c[[0,2]] #先取出想要的行数据 C_A = C_A[:,[2,3]] #再取出要求的列数据 print(C_A) #输

  • python中NumPy的安装与基本操作

    目录 Numpy是什么 NumPy的安装 多维数组 创建多维数组 多维数组的常用属性 多维数组的基本操作 数组的算术运算 数组的自身运算 随机数组 索引.切片.迭代 总结 Numpy是什么 很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数.如果接触过matlab.scilab,那么numpy很好入手. NumPy是一个高性能的科学计算和数据

  • Python Numpy库安装与基本操作示例

    本文实例讲述了Python Numpy库安装与基本操作.分享给大家供大家参考,具体如下: 概述 NumPy(Numeric Python)扩展包提供了数组功能,以及对数据进行快速处理的函数. NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用. 安装 通过pip安装numpy pip install numpy Numpy基本操作 >>> import numpy as np #一般以np作为numpy的别名 >>&

  • Python中Numpy包的安装与使用方法简明教程

    本文实例讲述了Python中Numpy包的安装与使用方法.分享给大家供大家参考,具体如下: Numpy包的安装 准备工作 1. Python安装 2. pip安装(如使用pip安装命令:pip install numpy) 3. 将pip所在的文件夹添加到环境变量path路径中 4. 下载相应的Numpy安装包,.whl格式.下载链接. 以上准备工作准备完毕之后,进行Numpy安装,先进入whl安装包的存放目录.比如在C盘: cd C:\ 再使用命令行安装: pip install numpy文

  • python中numpy包使用教程之数组和相关操作详解

    前言 大家应该都有所了解,下面就简单介绍下Numpy,NumPy(Numerical Python)是一个用于科学计算第三方的Python包. NumPy提供了许多高级的数值编程工具,如:矩阵数据类型.矢量处理,以及精密的运算库.专为进行严格的数字处理而产生.下面本文将详细介绍关于python中numpy包使用教程之数组和相关操作的相关内容,下面话不多说,来一起看看详细的介绍: 一.数组简介 Numpy中,最重要的数据结构是:多维数组类型(numpy.ndarray) ndarray由两部分组成

  • python的numpy模块安装不成功简单解决方法总结

    为了画个图,被numpy这个模块的安装真的折腾疯了!!!一直装不上,花了几个小时,看了网上的很多教程.方法发现总结得不是很全,这里总结一下,防止大家再出现这个问题没有解决方法. Python的魅力之一,就是拥有众多功能强大的插件,但是这些插件的寻找.安装.升级在windows系统上却非常之麻烦.首先安装完Python后需要在系统配置环境变量,接下来又要安装Setuptools,而且安装过程中还会报编码错误,对于需要拷贝源码安装的还需要去CMD里打命令,还得小心翼翼避免打错参数,如果没有一位有经验

  • python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案

    python中通过pip安装库文件时出现"EnvironmentError: [WinError 5] 拒绝访问" 我遇到的问题:电脑上已经有了一个numpy==1.19.1,但是出于某种原因,我需要降级为numpy==1.16.2, 因此在命令行窗口中输入: pip install numpy==1.16.2 Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问.: 'E:\\applicat

  • Python中matplotlib库安装失败的经验总结(附pycharm配置anaconda)

    目录 1. 首先检查自己pip是否最新: 2. 先试着装库,看看自己缺什么: 2.1 from version:none 2.2 numpy>=1.71 etc. 2.3 pillow缺少zlib环境 2.4 Cannot found pip.ini 3 安装完成 补充:pycharm配置anaconda 总结 由于学习需要安装matplotlib库,阅读网上教程后一直出现各种各样的错误,以下为我的经验总结: 声明:本人python版本为3.8.0,pycharm为2021.2 1. 首先检查自

  • python中numpy.zeros(np.zeros)的使用方法

    翻译: 用法:zeros(shape, dtype=float, order='C') 返回:返回来一个给定形状和类型的用0填充的数组: 参数:shape:形状 dtype:数据类型,可选参数,默认numpy.float64 dtype类型: t ,位域,如t4代表4位 b,布尔值,true or false i,整数,如i8(64位) u,无符号整数,u8(64位) f,浮点数,f8(64位) c,浮点负数, o,对象, s,a,字符串,s24 u,unicode,u24 order:可选参数

  • Python中的pygal安装和绘制直方图代码分享

    有关pygal的安装,大家可以参阅<pip和pygal的安装实例教程>. 直方图: 直方图是一个特殊的条,它可以取3个数值:纵坐标高度,横坐标开始和横坐标结束. import pygal hist = pygal.Histogram() hist.add('Wide bars', [(5, 0, 10), (4, 5, 13), (2, 0, 15)]) hist.add('Narrow bars', [(10, 1, 2), (12, 4, 4.5), (8, 11, 13)]) hist.

  • Python中numpy模块常见用法demo实例小结

    本文实例总结了Python中numpy模块常见用法.分享给大家供大家参考,具体如下: import numpy as np arr = np.array([[1,2,3], [2,3,4]]) print(arr) print(type(arr)) print('number of dim:', arr.ndim) print('shape:', arr.shape) print('size:', arr.size) [[1 2 3]  [2 3 4]] number of dim: 2 sha

随机推荐