Python numpy ndarray属性,索引,切片

目录
  • 一、ndarray 的重要属性
  • 二、切片
    • 1. 一维切片
    • 1. 二维切片
  • 三、索引
    • 1. 一维数组索引
    • 2. 二维数组索引
    • 3. 布尔索引
    • 4. 非运算
    • 5. 或运算
    • 6. 与运算

一、ndarray 的重要属性

  • dtype属性:返回ndarray数组的数据类型,数据类型的种类。
  • ndim属性:返回数组维度的数量。
  • shape属性:返回数组对象的尺度,对于矩阵,即n行m列,shape是一个元组(tuple)。
  • size属性:返回用来保存元素的数量,相当于shape中n×m的值。
  • T属性:返回数组转置。

二、切片

1. 一维切片

import numpy as np

arr_1d = np.arange(12)

arr_1d[:4]		# 省却起始,默认从0开始
arr_1d[6:11]
arr_1d[0:11:2]		# 指定步长为 2
arr_1d[12:6:-1]		# 反向切片

1. 二维切片

如果是多维数组,只需在每个维度之间用 ‘,’ 隔开。

import numpy as np
arr_2d = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])
arr_2d[0:2, 0:2]

arr_2d[0:2, -3:]		#前2行,倒数第3列开始

arr_2d[-2:, ::2]		# 倒数第2行开始 列根据步长2,每隔一列取一列

三、索引

1. 一维数组索引

import numpy as np

arr_1d = np.arange(12)
arr_1d[4]
arr_1d[-2]		# 反向索引
arr_1d[[2,4,6,7,8,9]]		# 同事索引多个

2. 二维数组索引

import numpy as np

arr_2d = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])
arr_2d[1, 2]
arr_2d[-1, -1]		# 反向索引

# 如果索引比维度少的多维数组,则会获得一个子维数组
arr_2d[2]		# 取 index=2 的行
# out array([ 7,  8,  9, 10])

arr_2d[2][0]		#  index=2 的行后,再去index=0 的列
# out 7

arr_2d[[2,0]]		# 同时取 index =2 和 index=0 的行
# out array([[ 7,  8,  9, 10], [ 1,  2,  3,  4]])

3. 布尔索引

布尔索引就是根据条件筛选,判断每个元素在条件下是True还是False,也就是布尔值,当条件判断True时,返回。当条件判断为False时,过滤掉。

import numpy as np

arr_1d = np.arange(12)
arr_1d[[False, False, False, False, False,  True,  True,  True,  True, True,  True,  True]]
# out array([ 5,  6,  7,  8,  9, 10, 11])

arr_1d>=5
# out array([False, False, False, False, False,  True,
#  True,  True,  True, True,  True,  True])

arr_1d[arr_1d>=5]
# out array([ 5,  6,  7,  8,  9, 10, 11])

4. 非运算

arr_1d[~(arr_1d>=5)]
# out array([0, 1, 2, 3, 4])

5. 或运算

只要对应的二个二进位有一个为1时,结果位就为1。

arr_2d = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])

(arr_2d>=8) | (arr_2d<=2)
# out array([[ True,  True, False, False],
#       [False, False, False, False],
#       [False,  True,  True,  True]])

arr_2d[(arr_2d>=8) | (arr_2d<=2)]
# out array([ 1,  2,  8,  9, 10])

6. 与运算

参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

arr_2d = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])

arr_2d[(arr_2d<=8) & (arr_2d>=2)]
# ount array([2, 3, 4, 4, 5, 6, 7, 7, 8])

到此这篇关于Python numpy ndarray属性,索引,切片的文章就介绍到这了,更多相关Python numpy ndarray 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python Numpy中ndarray的常见操作

    目录 前言 0 Numpy基础知识 1 ndarray的属性 1.1 输出ndarray的常见属性 2 ndarray的数据类型 3 修改ndarray的形状和数据类型 3.1 查看和修改ndarray的形状 3.2 查看和修改ndarray的数据类型 4 ndarray数组创建 5 ndarray数组的常见运算 6 ndarray数组的索引.切片和迭代 7 ndarray数组的堆叠.拆分 前言 NumPy(Numerical Python)是Python的一种开源的数值计算扩展.这种工具可用来

  • python NumPy ndarray二维数组 按照行列求平均实例

    我就废话不多说了,直接上代码吧! c = np.array([[1, 2, 3, 4], [4, 5, 6, 7], [7, 8, 9, 10]]) print(c.mean(axis=1))#行 print(c.mean(axis=0))#列 输出为: [ 2.5 5.5 8.5] [ 4. 5. 6. 7.] 以上这篇python NumPy ndarray二维数组 按照行列求平均实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python中Numpy ndarray的使用详解

    本文主讲Python中Numpy数组的类型.全0全1数组的生成.随机数组.数组操作.矩阵的简单运算.矩阵的数学运算. 尽管可以用python中list嵌套来模拟矩阵,但使用Numpy库更方便. 定义数组 >>> import numpy as np >>> m = np.array([[1,2,3], [2,3,4]]) #定义矩阵,int64 >>> m array([[1, 2, 3], [2, 3, 4]]) >>> m = n

  • python numpy.ndarray中如何将数据转为int型

    目录 numpy.ndarray中数据转为int型 出现错误only size-1 arrays can be converted to Python scalars numpy.ndarray中数据转为int型 首先了解内容与类型 >>>print(a) (array([[0.01124722], [0.21752586], [0.05586815], [0.03558792]]), array([[ 327], [ 366], [1887], [1153], [1792]], dty

  • Python Numpy 控制台完全输出ndarray的实现

    如下所示: import numpy as np np.set_printoptions(threshold=np.nan) print(ndarray) 当ndarray里面的存放的数据维度过大时,在控制台会出现不能将ndarray完全输出的情况,中间部分的结果会用省略号打印出来.这时就需要用到numpy里面的set_printoptions()方法. set_printoptions(precision=None, threshold=None, edgeitems=None, linewi

  • Python numpy中的ndarray介绍

    目录 1. 什么是 ndarray? ndarray 概念 ndarray 内部关系 2. ndarray 内存结构 ndarray 内存结构 3. ndarray vs list ndarray 特点 list 特点 在上一期python numpy 模块中对概述介绍了numpy 模块安装.使用方法.特点等入门知识. numpy 模块是一个开源的第三方Python库,常用于科学和工程领域,是科学Python和PyData 生态系统的核心. numpy 模块易学易用的特点,基本上覆盖了初学者到先

  • Python numpy ndarray属性,索引,切片

    目录 一.ndarray 的重要属性 二.切片 1. 一维切片 1. 二维切片 三.索引 1. 一维数组索引 2. 二维数组索引 3. 布尔索引 4. 非运算 5. 或运算 6. 与运算 一.ndarray 的重要属性 dtype属性:返回ndarray数组的数据类型,数据类型的种类. ndim属性:返回数组维度的数量. shape属性:返回数组对象的尺度,对于矩阵,即n行m列,shape是一个元组(tuple). size属性:返回用来保存元素的数量,相当于shape中n×m的值. T属性:返

  • python numpy数组的索引和切片的操作方法

    NumPy - 简介 NumPy 是一个 Python 包. 它代表 "Numeric Python". 它是一个由多维数组对象和用于处理数组的例程集合组成的库. Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的. 也开发了另一个包 Numarray ,它拥有一些额外的功能. 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numeric 包中来创建 NumPy 包. 这个开源项目有很多贡献者. NumPy 操作 使用Nu

  • Python Numpy学习之索引及切片的使用方法

    目录 1. 索引及切片 2. 高级索引 1. 索引及切片 数组中的元素可以通过索引以及切片的手段进行访问或者修改,和列表的切片操作一样. 下面直接使用代码进行实现,具体操作方式以及意义以代码注释为准: (1)通过下标以及内置函数进行索引切片 """ Author:XiaoMa date:2021/12/30 """ import numpy as np a = np.arange(10)#创建一个从0-9的一维数组 print(a) i = sl

  • Python NumPy教程之索引详解

    目录 为什么我们需要 NumPy 使用索引数组进行索引 索引类型 基本切片和索引 高级索引 NumPy 或 Numeric Python 是一个用于计算同质 n 维数组的包.在 numpy 维度中称为轴. 为什么我们需要 NumPy 出现了一个问题,当 python 列表已经存在时,为什么我们需要 NumPy.答案是我们不能直接对两个列表的所有元素执行操作.例如,我们不能直接将两个列表相乘,我们必须逐个元素地进行.这就是 NumPy 发挥作用的地方. 示例 #1: # 演示需要 NumPy 的

  • Python中的 Numpy 数组形状改变及索引切片

    目录 1.改变数组形状 2.索引和切片 1.改变数组形状 数组的shape属性返回一个元组,包括维度以及每个轴的元素数量,Numpy 还提供了一个reshape()方法,它可以改变数组的形状,返回一个新的数组. 例如: a = np.array([1,2,3,4,5,6,7,8]) 转换成二维数组: b = a.reshape((2,4)) 转换成三维数组: c = a.reshape((2,2,2)) 但是需要注意的是,修改后的数组元素个数与原数组元素个数必须是一致的,不一致会报错. 例如执行

  • python中ndarray数组的索引和切片的使用

    索引和切片相当于是对数组中内容的读(read)或者查询(inquiry).是我们获取有用信息(demanded infomation)的重要方法. 对于索引 对于1维数组:在数组名的后面用中括号[]包括索引编号,括号中填写所查询数组的编码.比如:data[1] 对于n维数组:有两种方式 第一种:用列表表示所查询数的坐标值,如data_2dim[1,0] 第二种:把多维数组看成一位数组套娃,依次取值,如data_2dim[1][0] 对于切片 对于1维数组:在数组名后加上中括号[],在括号中填写切

  • Python 中pandas索引切片读取数据缺失数据处理问题

    引入 numpy已经能够帮助我们处理数据,能够结合matplotlib解决我们数据分析的问题,那么pandas学习的目的在什么地方呢? numpy能够帮我们处理处理数值型数据,但是这还不够 很多时候,我们的数据除了数值之外,还有字符串,还有时间序列等 比如:我们通过爬虫获取到了存储在数据库中的数据 比如:之前youtube的例子中除了数值之外还有国家的信息,视频的分类(tag)信息,标题信息等 所以,numpy能够帮助我们处理数值,但是pandas除了处理数值之外(基于numpy),还能够帮助我

随机推荐