目录

NumPy

ndarray对象

Numpy数据类型

Numpy数组属性


NumPy

NumPy(Numerical Python) 是 Python 的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Nupmy可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。据说NumPy将Python相当于变成一种免费的更强大的MatLab系统。

NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:

  • 一个强大的 N 维数组对象 ndarray
  • 广播功能函数
  • 整合 C/C++/Fortran 代码的工具
  • 线性代数、傅里叶变换、随机数生成等功能

ndarray对象

NumPy 最重要的一个对象是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,可以使用基于 0 的索引访问集合中的项目。

ndarray 对象是用于存放同类型元素的多维数组。ndarray中的每个元素在内存中使用相同大小的块。 ndarray中的每个元素是数据类型对象的对象(称为 dtype)

numpy.array( object ,  dtype = None , ndmin = 0 ,copy = True , order = None ,  subok = False )

一般只有 object 、dtype和 ndmin 参数常用,其他参数不常用

import numpy
a=numpy.array([1,2,3]) #一维
b=numpy.array([[1,2,3],[4,5,6]]) #二维
c=numpy.array([1,2,3],dtype=complex) #元素类型为复数
d=numpy.array([1,2,3],ndmin=2) #二维
print(a,type(a))
print(b,type(b))
print(c,type(c))
print(d,type(d))
####################################
[1 2 3] <class 'numpy.ndarray'>
[[1 2 3]
[4 5 6]] <class 'numpy.ndarray'>
[1.+0.j 2.+0.j 3.+0.j] <class 'numpy.ndarray'
[[1 2 3]] <class 'numpy.ndarray'>

Numpy数据类型

Numpy数组属性

NumPy 数组的维数称为秩(rank),一维数组的秩为 1,二维数组的秩为 2,以此类推。

在 NumPy中,每一个线性的数组称为是一个轴(axis),也就是维度(dimensions)。比如说,二维数组相当于是两个一维数组,其中第一个一维数组中每个元素又是一个一维数组。所以一维数组就是 NumPy 中的轴(axis),第一个轴相当于是底层数组,第二个轴是底层数组里的数组。而轴的数量——秩,就是数组的维数。

很多时候可以声明 axis。axis=0,表示沿着第 0 轴进行操作,即对每一列进行操作;axis=1,表示沿着第1轴进行操作,即对每一行进行操作。

ndarray 对象属性有:

常见的属性有下面几种 :

ndarray.shape :  这一数组属性返回一个包含数组纬度的元组,它也可以用于调整数组大小

import numpy as np
a=np.array([[1,2,3],[4,5,6]])
print(a.shape) #打印shape属性
a.shape=(3,2) #修改shape属性
print(a)
#######################################
(2, 3)
[[1 2]
[3 4]
[5 6]]

 ndarray.ndim: 这一数组属性返回数组的维数

import numpy as np
a=np.arange(24) #np.arange返回0-23的列表类型的数据
print(a.ndim)
b=a.reshape(2,3,4)
print(b)
print(b.ndim)
############################
1
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]] [[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
3

ndarray.itemsize : 这一数组属性返回数组中每个元素的字节单位长度

import numpy as np
a=np.array([1,2,3]) #默认是四个字节
print(a.itemsize)
#########################################
4

相关文章:NumPy教程

Python中Numpy模块的使用的更多相关文章

  1. 【转】python中numpy模块下的np.clip()的用法

    转自:https://blog.csdn.net/HHTNAN/article/details/79799612 Numpy 中clip函数的使用 一维数组 其中a是一个数组,后面两个参数分别表示最小 ...

  2. Python中numpy模块的简单使用

    # encoding:utf-8 import numpy as np data1 = np.array([1, 2, 3, 4, 5]) print(data1) data2 = np.array( ...

  3. python中numpy矩阵运算操作大全(非常全)!

    python中numpy矩阵运算操作大全(非常全) //2019.07.10晚python矩阵运算大全1.矩阵的输出形式:对于任何一个矩阵,python输出的模板是:import numpy as n ...

  4. Python中optionParser模块的使用方法[转]

    本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内 ...

  5. python中threading模块详解(一)

    python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...

  6. 【转】关于python中re模块split方法的使用

    注:最近在研究文本处理,需要用到正则切割文本,所以收索到了这篇文章,很有用,谢谢原作者. 原址:http://blog.sciencenet.cn/blog-314114-775285.html 关于 ...

  7. Python中的模块介绍和使用

    在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一 ...

  8. python中导入模块的本质, 无法导入手写模块的解决办法

    最近身边一些朋友发生在项目当中编写自己模块,导入的时候无法导入的问题. 下面我来分享一下关于python中导入模块的一些基本知识. 1 导入模块时寻找路径 在每一个运行的python程序当中,都维护了 ...

  9. Python中time模块详解

    Python中time模块详解 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. ...

随机推荐

  1. ant-design-vue中table自定义列

    1. 使用背景 在项目中使用ant-vue的a-table控件过程中,需要显示序号列或者在列中显示图片,超链,按钮等UI信息.经过查询文档customCell和customRender可以实现以上需求 ...

  2. MarkFormat,一个在Word中使用Mark进行格式化的插件

    MarkFormat(标记格式化),是一款在Word中基于标记进行格式化的工具. 让我们看下具体效果. 首先是有标记的文本 点击格式化之后 点击去除标记之后(去除标记也会进行格式化) 如果想要恢复标记 ...

  3. 【Azure API 管理】从微信小程序访问APIM出现200的空响应的问题中发现CORS的属性[terminate-unmatched-request]功能

    问题描述 使用微信小程序调用APIM(API Management)中的接口,发现POST和PUT请求被拦截,返回的状态码为200,但是无消息内容. 在小程序中的调用JS代码如: 通过浏览器测试得到的 ...

  4. 使用wireshark 抓取 http https tcp ip 协议进行学习

    使用wireshark 抓取 http https tcp ip 协议进行学习 前言 本节使用wireshark工具抓包学习tcp ip http 协议 1. tcp 1.1 tcp三次握手在wire ...

  5. 测试工程师Docker基础

    一.docker概述 1.docker为什么会出现 本质:所有技术的出现都是因为出现了一些问题,我们需要去解决,才去研究和学习: 问题: ​ 开发环境.测试环境.仿真环境.正式环境等诸多环境都需要进行 ...

  6. FreeBSD 开发已经迁移至 git

    FreeBSD 开发已经迁移至 git 全部预计于 2021 年 3 月完成迁移. https://git.freebsd.org/src.git 或者 https://cgit.freebsd.or ...

  7. android底部导航栏小结

    android自带的有TabHost,但好像无法满足要求, 本文只记录使用 TabLayout + Fragment  和 android 自带的 BottomNavigationView + Fra ...

  8. HDU_3949 XOR 【线性基】

    一.题目 XOR 二.分析 给定$N$个数,问它的任意子集异或产生的数进行排列,求第K小的数. 构造出线性基$B$后,如果$|B| < N$,那么代表N个数中有一个数是可以由线性基中的其他数异或 ...

  9. java面试记很多次还是记不住的问题

    1.java底层如何实现多态 https://blog.csdn.net/fan2012huan/article/details/51007517 (1)在常量池中找到方法调用的符号引用 (2)查看P ...

  10. golang 实现求两向量夹角

    type Vector3 struct { X float64 `json:"x"` Y float64 `json:"y"` Z float64 `json: ...