Numpy基础(二)

作者: 诺馨 | 来源:发表于2018-01-17 10:45 被阅读17次
基本的索引和切片

数组切片是原始数组的视图,这意味着数组不会被复制,视图上的任何修改都会直接反映到源数据

In [1]: arr = np.arange(10)
        arr[5:8] = 12
        arr        #arr[5:8]的值不是5,6,7了,而是修改后的12
Out[1]: array([ 0,  1,  2,  3,  4, 12, 12, 12,  8,  9])

继续,将切片赋值给一个变量,对该变量进行操作,看看源数据如何变化。

In [2]: arr_slice = arr[5:8]
        arr_slice[1] = 123
        arr
Out[2]: array([  0,   1,   2,   3,   4,  12, 123,  12,   8,   9])

很明显,结果如我们所料,源数据随切片变化而变化,所以:如果想要得到的是ndarray切片的一份副本而不是视图,就需要显式地进行复制操作,例如arr[5:8].copy()。

Numpy数组中的元素索引

对于一个二维数组,各索引位置上的元素不是标量而是一维数组,而三维数组呢,以此类推啦..

In [3]: arr2d = np.array([[1,2,3], [4,5,6], [7,8,9]])
        arr2d[2]
Out[3]: array([7, 8, 9])

获取单个元素,比如3,可以为arr2d[0][2],这样有点麻烦对吧,可以传入一个以逗号隔开的索引列表来选取单个元素。即:
arr2d[0,2],这两种方式是等价的。

对于三维数组,arr3d[0]是一个2 x 3数组:

In [4]: arr3d = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
        arr3d
Out[4]: array([[[ 1,  2,  3],
                [ 4,  5,  6]],

               [[ 7,  8,  9],
                [10, 11, 12]]])

In [5]: arr3d[0]
Out[5]: array([[1, 2, 3],
               [4, 5, 6]])

相关文章

  • Numpy入门

    1、熟悉 numpy 的基础属性 2、numpy 创建 array 3、numpy的基础运算 4、numpy索引 ...

  • numpy基础(二)

    numpy 数组索引及切片 一维数组的索引以及切片 在numpy 中一维数组的切片和python中的列表一样。切片...

  • Numpy基础(二)

    基本的索引和切片 数组切片是原始数组的视图,这意味着数组不会被复制,视图上的任何修改都会直接反映到源数据。 继续,...

  • Numpy基础(二)

    choose函数实现条件筛选 choose函数主要利用下标以及下标所在的位置对相关的数组进行筛选,看下面的示例:

  • Numpy基础二

    1通用函数 通用函数(即ufunc)是一种对ndarray中的数据执行元素级的运算。我们可以将其看做是简单的函数(...

  • Numpy包的一些简单使用

    一、安装 Windows安装: 二、Numpy使用 使用要先导入包 2.1. numpy的基础 2.2. nump...

  • Numpy | 基础操作(矩阵)

    NumPy 基础操作 什么是 NumPy NumPy是Python中科学计算的基础包。它是一个Python库,提供...

  • numpy 基础

    numpy 基础 导入numpy 版本 np常用方法 numpy.array 的基本属性 numpy.array ...

  • Numpy(二)矩阵基础

    1 逻辑判断: 1.1 &: vector = numpy.array([5,10,15,20])equal_to...

  • Python-Numpy学习1

    安装numpy conda install numpy 或者是 pip install numpy 基础用法 ax...

网友评论

    本文标题:Numpy基础(二)

    本文链接:https://www.haomeiwen.com/subject/tideoxtx.html