目录

创建数组

多维数组切片

数组属性

使用数组

数组特殊运算符

索引进阶

花式索引


创建数组

在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. Node: 将时间戳转换成日期并分组

    // 对时间戳按日期进行分组 let moment = require('moment') let timestamp_array = [ 1645059333000, 1613523333000, ...

  2. 2023牛客暑期多校训练营4 AFHJL

    比赛链接 A 题解 知识点:KMP,构造. 考虑构造全 \(0,1\) 串,至少有一个可行. 我们只需要考虑到 \(t\) 的border \(t'\) ,即 \(t'+s+t'\) : 当 \(t' ...

  3. Android Studio Giraffe安装与gradle配置

    本机环境:win10专业版,64位,16G内存. 原先用的AS2.2,是很早之前在看<第一行代码Android(第2版)>的时候,按书里的链接下载安装的,也不用怎么配置.(PS:第一行代码 ...

  4. docker swarm 使用详解

    转载请注明出处: 1.docker swarm 的组成架构 一个基本的docker swarm 的架构如下: 它主要包含这几个核心组件: Manager节点(Manager Nodes): 管理节点是 ...

  5. 混合开发模式是否可以在App备案制度下突围

    网站 ICP 备案已施行了很久,我们也非常清楚必须在进行 ICP 备案后,网站才能在大陆范围合法运营,并且用户可以通过域名正常访问网站. 但是月初出了新规,明年起,国内的 App 也要像网站一样进行备 ...

  6. 《SQL与数据库基础》19. 日志

    目录 日志 错误日志 二进制日志 日志格式 日志查看 日志删除 查询日志 慢查询日志 本文以 MySQL 为例 日志 错误日志 错误日志是 MySQL 中最重要的日志之一,它记录了当 mysql 启动 ...

  7. 纯干货!一文get昇腾Ascend C编程入门全部知识点

    本文分享自华为云社区<昇腾Ascend C编程入门教程>,作者:昇腾CANN . 2023年5月6日,在昇腾AI开发者峰会上,华为正式发布了面向算子开发场景的昇腾Ascend C编程语言. ...

  8. [Mysql] 存储过程简单理解

    什么是存储过程 简单的说, 就是一组SQL语句集, 功能强大, 可以实现一些比较复杂的逻辑功能. 其实就和编程语言的面向过程函数一样. ps: 存储过程与触发器类似, 但存储过程是主动调用, 触发器是 ...

  9. 如何成功将 API 客户的 transformer 模型推理速度加快 100 倍

    Transformers 已成为世界各地数据科学家用以探索最先进 NLP 模型.构建新 NLP 模块的默认库.它拥有超过 5000 个预训练和微调的模型,支持 250 多种语言,任君取用.无论你使用哪 ...

  10. qiankun微前端实践

    为什么要使用微前端 微前端架构具备以下几个核心价值: 技术栈无关 主框架不限制接入应用的技术栈,微应用具备完全自主权 独立开发.独立部署 微应用仓库独立,前后端可独立开发,部署完成后主框架自动完成同步 ...