Python3.5基础之NumPy模块的使用图文与实例详解

本文实例讲述了Python3.5基础之NumPy模块的使用。分享给大家供大家参考,具体如下:

1、简介

2、多维数组——ndarray

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

import numpy as np

#1.创建ndarray
#创建一维数组
n1 = np.array([1,2,3,4])
print(n1)

#属性--ndim:维度;dtype:元素类型;shape:数组形状;
# size:数组元素总个数,shape值相乘得到
print("n1维度:",n1.ndim)
print("n1元素类型:",n1.dtype)
print("n1数组形状:",n1.shape)
print("n1数组元素总个数:",n1.size)

#创建二维数组
n2 = np.array([
  [1,2,3,4],
  [5,6,7,8]
])

print(n2)
print("n2维度:",n2.ndim)
print("n2元素类型:",n2.dtype)

#创建三维数组
n3 = np.array([
  [
    [1,2,3,4],
    [5,6,7,8]
  ],
  [
    [10,20,30,40],
    [50,60,70,80]
  ]
])

print(n3)
print("n3数组形状:",n3.shape)
print("n3数组元素总个数:",n3.size)

#2.通过函数创建数组
z = np.zeros((3,2))   #创建指定形状的数组,数值由零填充
print(z)
print(z.dtype)

o = np.ones((2,4))   #创建指定形状的数组,数值由1填充
print(o)

e = np.empty((2,3,2))  #创建指定形状的数组,数值由未初始化的垃圾值填充
print(e)

#3.通过函数计算的方式去创建数组
#一个参数,区间左闭右开,默认起始值为0,步长为1
np1 = np.arange(10)
print(np1)

#两个参数(起始值,终止值),区间左闭右开,默认步长为1
np2 = np.arange(2,10)
print(np2)

#三个参数(起始值,终止值,步长),区间左闭右开,步长为2
np3 = np.arange(2,10,2)
print(np3)

#倒序创建数组元素
np4 = np.arange(10,2,-1)
print(np4)

#全闭区间,参数(起始值,终止值,元素个数),等差数列
np5 = np.linspace(0,10,5)
print(np5)

#全闭区间,以10为底数参数为指数(起始值,终止值,元素个数),等比数列
np6 = np.logspace(0,2,5)
print(np6)

#生成随机数的数组
np7 = np.random.random((2,3))
print(np7)

运行结果:

[1 2 3 4]
n1维度: 1
n1元素类型: int32
n1数组形状: (4,)
n1数组元素总个数: 4
[[1 2 3 4]
 [5 6 7 8]]
n2维度: 2
n2元素类型: int32
[[[ 1  2  3  4]
  [ 5  6  7  8]]

[[10 20 30 40]
  [50 60 70 80]]]
n3数组形状: (2, 2, 4)
n3数组元素总个数: 16
[[ 0.  0.]
 [ 0.  0.]
 [ 0.  0.]]
float64
[[ 1.  1.  1.  1.]
 [ 1.  1.  1.  1.]]
[[[  1.02548961e-305   5.40165714e-067]
  [  1.05952696e-153   9.69380992e+141]
  [  2.17151199e+214   4.34975848e-114]]

[[  2.08064175e-115   1.91431714e+227]
  [  6.42897811e-109   1.26088822e+232]
  [  9.51634286e-114   5.45764552e-306]]]
[0 1 2 3 4 5 6 7 8 9]
[2 3 4 5 6 7 8 9]
[2 4 6 8]
[10  9  8  7  6  5  4  3]
[  0.    2.5   5.    7.5  10. ]
[   1.            3.16227766   10.           31.6227766   100.        ]
[[ 0.55980469  0.99477652  0.82310732]
 [ 0.97239333  0.1409895   0.57213264]]

#修改ndarray形状
np8 = np.arange(0,20,2)
print(np8)
print(np8.size)

np9 = np8.reshape(2,5)
print(np9)
print(np9.size)

#reshape函数是对被修改数组的一个拷贝,共享同一内存,
# 修改其中一个数组会影响里一个
np9[1][2] = 50
print(np8)
print(np9)

# -1表示第二维自动根据元素个数计算
np10 = np8.reshape(5,-1)
print(np10)

#shape直接修改原来数组的形状
np8.shape=(2,-1)
print(np8)

运行结果:

[ 0  2  4  6  8 10 12 14 16 18]
10
[[ 0  2  4  6  8]
 [10 12 14 16 18]]
10
[ 0  2  4  6  8 10 12 50 16 18]
[[ 0  2  4  6  8]
 [10 12 50 16 18]]
[[ 0  2]
 [ 4  6]
 [ 8 10]
 [12 50]
 [16 18]]
[[ 0  2  4  6  8]
 [10 12 50 16 18]]

Numpy基本操作说明

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • Python3.5 Pandas模块之DataFrame用法实例分析

    本文实例讲述了Python3.5 Pandas模块之DataFrame用法.分享给大家供大家参考,具体如下: 1.DataFrame的创建 (1)通过二维数组方式创建 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu import numpy as np import pandas as pd from pandas import Series,DataFrame #1.DataFrame通过二维数组创建 pr

  • Python3.5内置模块之random模块用法实例分析

    本文实例讲述了Python3.5内置模块之random模块用法.分享给大家供大家参考,具体如下: 1.random模块基础的方法 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu import random print(random.random()) #随机产生[0,1)之间的浮点值 print(random.randint(1,6)) #随机生成指定范围[a,b]的整数 print(random.randr

  • Python3.5内置模块之time与datetime模块用法实例分析

    本文实例讲述了Python3.5内置模块之time与datetime模块用法.分享给大家供大家参考,具体如下: 1.模块的分类 a.标准库(Python自带):sys.os模块 b.开源模块(第三方模块) c.自定义模块 2.内建模块--time (1)在Python中通常用以下几种方式来表示时间: a.时间戳:从1970年1月1日开始到当下的时间的秒数,导入time模块(import time),调用time.time()方法即可. b.格式化的时间字符串. c.元组(struct_time)

  • Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析

    本文实例讲述了Python3.5内置模块之os模块.sys模块.shutil模块用法.分享给大家供大家参考,具体如下: 1.os模块:提供对操作系统进行调用的接口 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu import os print(os.getcwd()) #获取当前的操作目录,即当前Python脚本工作的目录路径 #os.chdir("F:\\PythonCode\\day5\\test&quo

  • python模块导入的细节详解

    python模块导入细节 本文主要介绍了关于python模块导入的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 官方手册:https://docs.python.org/3/tutorial/modules.html 可执行文件和模块 python源代码文件按照功能可以分为两种类型: 用于执行的可执行程序文件 不用与执行,仅用于被其它python源码文件导入的模块文件 例如文件a.py和b.py在同一目录下,它们的内容分别是: # b.py x="var x in m

  • Python下使用Psyco模块优化运行速度

    今天介绍下Psyco模块,Psyco模块可以使你的Python程序运行的像C语言一样快. 都说Python语言易用易学,但性能上跟一些编译语言(如C语言)比较要差不少,这里可以用C语言和Python语言各编写斐波纳契数列计算程序,并计算运行时间: C语言程序 复制代码 代码如下: int fib(int n){    if (n < 2)      return n;    else      return fib(n - 1) + fib(n - 2); }   int main() {   

  • Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析

    本文实例讲述了Python3.5内置模块之shelve模块.xml模块.configparser模块.hashlib.hmac模块用法.分享给大家供大家参考,具体如下: 1.shelve模块 shelve类似于一个key-value数据库,可以很方便的用来保存Python的内存对象,其内部使用pickle来序列化数据, 简单来说,使用者可以将一个列表.字典.或者用户自定义的类实例保存到shelve中,下次需要用的时候直接取出来, 就是一个Python内存对象,不需要像传统数据库一样,先取出数据,

  • Python3.5 Pandas模块之Series用法实例分析

    本文实例讲述了Python3.5 Pandas模块之Series用法.分享给大家供大家参考,具体如下: 1.Pandas模块引入与基本数据结构 2.Series的创建 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu #模块引入 import numpy as np import pandas as pd from pandas import Series,DataFrame #1.Series通过numpy一

  • Python3.5 Pandas模块缺失值处理和层次索引实例详解

    本文实例讲述了Python3.5 Pandas模块缺失值处理和层次索引.分享给大家供大家参考,具体如下: 1.pandas缺失值处理 import numpy as np import pandas as pd from pandas import Series,DataFrame df3 = DataFrame([ ["Tom",np.nan,456.67,"M"], ["Merry",34,345.56,np.nan], [np.nan,np

  • python导入模块交叉引用的方法

    实际项目中遇到python模块相互引用问题,查资料,终于算是弄明白了. 首先交叉引用或是相互引用,实际上就是导入循环,关于导入循环的详细说明,可见我摘自<python核心编程>第二版的摘抄:Python导入循环方法. 附录给了一种解决交叉引用的方法,试了,不行,但关于交叉引用问题本身说明的很清楚,如果不清楚什么是交叉引用,可看附录一. 循环引用在python圈关注的并不多,语言上没有提供防止循环依赖的机制. 总的来说,应该在总体结构上避免模块之间互相依赖,即:A依赖B,B就不要依赖A,这也是代

  • Python3.5模块的定义、导入、优化操作图文详解

    本文实例讲述了Python3.5模块的定义.导入.优化操作.分享给大家供大家参考,具体如下: 1.模块体系大纲 2.模块的定义 模块的本质:是一个.py格式的Python文件.文件名test.py,对应的模块名为:test. 用来从逻辑上组织Python代码(变量.函数.类.逻辑),实现一个功能. 3.模块的导入方法 举例: (1)当导入的模块中有多个方法和多个变量时,导入模块的所有变量与方法,举例如下: (2)两种模块的导入方法的使用比较: 仅仅导入模块,调用的方式是:模块.方法 导入模块的所

随机推荐