目录

创建数组

多维数组切片

数组属性

使用数组

数组特殊运算符

索引进阶

花式索引


创建数组

在numpy中,创建数组有很多种方法,例如如下的例子:

import numpy as np
sws_1 = np.array([0, 1, 2, 3, 4])
sws_2 = np.array((0, 1, 2, 3, 4))
sws_3 = np.arange(5)
sws_4 = np.linspace(0, 2 * np.pi, 5) print(sws_1[1:3]) # 切片
print(sws_2)
print(sws_3)
print(sws_4)
print(sws_1[3]) ######
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
[0. 1.57079633 3.14159265 4.71238898 6.28318531]
3

np.arange()和np.linspace()方法可以参考python之range()、arange()和linspace()这篇文章

切片的知识也可以参照python列表之部分列表——切片,毕竟一维数组的切片还是一样的

多维数组切片

多维数组的切片要比一维数组复杂一点,但也只是一点点哦,让我们一起来看

import numpy as np
from numpy import arange sws_1 = np.array([arange(0, 5),
arange(5, 10),
arange(10, 15),
arange(15, 20),
arange(20, 25)]) print(sws_1[0, 1:4], '\n') # 在第0行进行1:4的切片
print(sws_1[1:4, 0], '\n') # 在第0列进行1:4的切片
print(sws_1[::2, ::2], '\n') # 从列、行的0开始,最后结束,分别步进为2取值
print(sws_1[:, 1], '\n') # 在第一列取所有元素 ######
[1 2 3] [ 5 10 15] [[ 0 2 4]
[10 12 14]
[20 22 24]] [ 1 6 11 16 21]

数组属性

现在来看看怎么查看数组的一些属性

import numpy as np
from numpy import arange sws_1 = np.array([arange(0, 5),
arange(5, 10),
arange(10, 15),
arange(15, 20),
arange(20, 25)]) print(type(sws_1)) # 数据结构类型,如list,dict等
print(sws_1.dtype) # 数据元素类型,如int,float等,还有位的大小
print(sws_1.size) # 统计元素个数
print(sws_1.shape) # 相当于数学里的(x,y,z)
print(sws_1.itemsize) # 每项占用的字节数,一个字节有8位
print(sws_1.ndim) # 数组的维度
print(sws_1.nbytes) # 数组中所有数据消耗的总字节 ######
<class 'numpy.ndarray'>
int32
25
(5, 5)
4
2
100

使用数组

基本操作符+、-、*、/、**、<、>和dot()

import numpy as np
from numpy import arange sws_0 = arange(30, 55)
sws_0 = sws_0.reshape((5, 5)) # 让sws_0的所有元素按照(5,5)的维度排列 sws_1 = np.array([arange(0, 5),
arange(5, 10),
arange(10, 15),
arange(15, 20),
arange(20, 25)]) # 对应索引位置的元素进行运算
print(sws_0 + sws_1)
print(sws_0 - sws_1)
print(sws_0 * sws_1)
print(sws_0 / sws_1)
print(sws_0 ** 2)
print(sws_0 < sws_1)
print(sws_0 > sws_1) # 矩阵的乘法
print(sws_0.dot(sws_1))

至于结果就不给大家发出来啦,毕竟太长了嘛,占篇幅,大家看着也疲劳,不过大家要自己动手试试哦

数组特殊运算符

如果要找数组中的一些特殊值,比如最大、最小或者求和呀,这里也可以很方便的

from numpy import arange

sws_0 = arange(10)

print(sws_0.sum())
print(sws_0.min())
print(sws_0.max())
print(sws_0.cumsum()) # 第一位先存入一个列表,然后第一位加第二位再存入列表,之后再加上第三位存
# 入列表,以此类推 ######
45
0
9
[ 0 1 3 6 10 15 21 28 36 45]

索引进阶

花式索引

import numpy as np

sws_0 = np.arange(0, 10)
sws_1 = sws_0[[1, 5, -1]] # 用一个列表包装想要打印的元素的索引
sws_2 = sws_0[sws_0 >= 6] # 根据条件判断
sws_3 = np.where(sws_0 <= 6) # 返回满足条件的元素的索引
sws_4 = np.where(sws_0 >= 6)[0] print(sws_0)
print(sws_1)
print(sws_2)
print(sws_3)
print(sws_4) ######
[0 1 2 3 4 5 6 7 8 9]
[1 5 9]
[6 7 8 9]
(array([0, 1, 2, 3, 4, 5, 6], dtype=int64),)
[6 7 8 9]

numpy数组基础的更多相关文章

  1. 1.2 NumPy数组基础

    目录 第一章 numpy入门 1.2 numpy数组基础 1.2.1 数组的属性 1.2.2 数组的索引:获取单个元素 1.2.3 数组切片:获取子数组 1.2.4 数组的变形 1.2.5 数组的拼接 ...

  2. 【Python】numpy 数组拼接、分割

    摘自https://docs.scipy.org 1.The Basics 1.1 numpy 数组基础 NumPy’s array class is called ndarray. ndarray. ...

  3. 科学计算三维可视化---Mlab基础(基于Numpy数组的绘图函数)

    Mlab了解 Mlab是Mayavi提供的面向脚本的api,他可以实现快速的三维可视化,Mayavi可以通过Mlab的绘图函数对Numpy数组建立可视化. 过程为: .建立数据源 .使用Filter( ...

  4. numpy的基础运算2-【老鱼学numpy】

    numpy的基础运算中还有很多运算,我们这里再记录一些. 最小/大值索引 前面一篇博文中我们讲述过如何获得数组中的最小值,这里我们获得最小/大值的索引值,也就是这个最小/大值在整个数组中位于第几位. ...

  5. Numpy 数组简单操作

    创建一个2*2的数组,计算对角线上元素的和 import numpy as np a = np.arange(4).reshape(2,2) print (a) #[[0 1] # [2 3]] n1 ...

  6. Python数据分析之numpy数组全解析

    1 什么是numpy numpy是一个在Python中做科学计算的基础库,重在数值计算,也是大部分Python科学计算库的基础库,多用于大型.多维数据上执行数值计算. 在NumPy 中,最重要的对象是 ...

  7. 【笔记】numpy.array基础(2)

    numpy数组的基本操作 以几个数组为例 使用ndim可以显示出是几维数组 使用shape可以查看元素维度数 使用size可以查看元素个数 对一维数组进行数据访问 对多维数组进行数据访问 切片访问,使 ...

  8. 【笔记】numpy.array基础(1)

    numpy.array基础 使用numpy.__version__可以检查numpy的版本 当然也可以直接使用命令行检查numpy版本 也可以用来简化引用,使用as python list特点 num ...

  9. NumPy 数组学习手册·翻译完成

    原文:Learning NumPy Array 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 ...

  10. numpy数组的操作

    numpy - 介绍.基本数据类型.多维数组ndarray及其内建函数 http://blog.csdn.net/pipisorry/article/details/22107553 http://w ...

随机推荐

  1. protolator - Protobuf <==> json

    github.com/hyperledger/fabric-config/protolator 是 Hyperledger Fabric 中的一个 Go 包,用于将 Protocol Buffers( ...

  2. Crawpy - 一款python写的网站目录扫描工具

    国外网站看到的. 简贴一下谷歌翻译的介绍 是什么让这个工具与其他工具不同: 它被写入异步工作,允许达到最大限制.所以它非常快. 校准模式,自行应用过滤器 有一堆标志可以帮助你详细地模糊 给定状态代码和 ...

  3. DXP TreeList 目录树

    DXP TreeList 目录树 1.需求背景 需要一个支持勾选,拖动节点,保存各节点顺序的目录树. 2.创建目录树 在treeList控件中添加两个colunm 用来显示绑定数据和显示值. 接下来对 ...

  4. redis数据持久化之RDB和AOF

    前言 redis虽然是内存缓存程序,但是可以将内存中的数据保存到硬盘上,从而实现数据保存.目前有两种redis数据持久化方式,分别是RDB和AOF. RDB模式 RDB之简介 RDB(redis da ...

  5. 让 GPT-4 给开源项目 GoPool Review 社区贡献者的 PR - 每天5分钟玩转 GPT 编程系列(5)

    目录 1. 嘚瑟一下 2. 言归正传 2.1 GoPool 的第一个 PR 2.2 祭出 GPT-4 2.3 问问 GPT-4 怎么看这个 PR 2.4 让 GPT-4 重构代码 3. 打完收工 1. ...

  6. __wakeup()魔术方法绕过(CVE-2016-7124)

    __wakeup()魔术方法绕过(CVE-2016-7124) 漏洞简介 在php反序列化数据过程中,如果类中存在__wakeup方法,调用 unserilize() 方法前则先调用__wakeup方 ...

  7. 【pandas小技巧】--数据转置

    所谓数据转置,就是是将原始数据表格沿着对角线翻折,使原来的行变成新的列,原来的列变成新的行,从而更方便地进行数据分析和处理. pandas中DataFrame的转置非常简单,每个DataFrame对象 ...

  8. 【opencv】传统目标检测:Haar检测器实现人脸检测

    传统目标分类器主要包括Viola Jones Detector.HOG Detector.DPM Detector,本文主要介绍VJ检测器,在VJ检测器基础上发展出了Haar检测器,Haar检测器也是 ...

  9. Mysql高级8-触发器

    一.触发器 触发器是与表有关的数据库对象,指在insert/update/delete之前或者之后,触发并执行触发器中定义的sql语句集合,触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志 ...

  10. SQL Server 2022新功能概览

    开始之前   本篇文章仅仅是针对SQL Server 2022新推出功能的概览,以及我个人作为用户视角对于每个功能的理解,有些功能会结合一些我的经验进行描述,实际上,SQL Server 2022在引 ...