美文网首页
numpy学习(三)

numpy学习(三)

作者: 58506fd3fbed | 来源:发表于2020-10-24 22:58 被阅读0次

一、数组迭代

除了for循环,Numpy 还提供另外一种更为优雅的遍历方法: apply_along_axis(func1d, axis, arr)

二、 数组操作

1 更改形状

1. numpy.ndarray.shape 表示数组的维度,返回一个元组,这个元组的长度就是维度的数目,即 ndim 属性(秩)。

2.numpy.ndarray.flat 将数组转换为一维的迭代器,可以用for访问数组每一个元素

2 数组转置

1. numpy.transpose(a, axes=None) Permute the dimensions of an array.

2. numpy.ndarray.T Same as self.transpose() , except that self is returned if self.ndim < 2 .

3 更改维度

4 数组组合

5 数组拆分

6 数组平铺

7 添加和删除元素

============改变数组的维度==================

已知reshape函数可以有一维数组形成多维数组

ravel函数可以展平数组

b.ravel()

flatten()函数也可以实现同样的功能

区别:ravel只提供视图view,而flatten分配内存存储

重塑:用元祖设置维度

>>> b.shape=(4,2,3)

>>> b

array([[ 0,  1,  2],

        [ 3,  4,  5],

       [ 6,  7,  8],

        [ 9, 10, 11],

       [12, 13, 14],

        [15, 16, 17],

       [18, 19, 20],

        [21, 22, 23]])

转置:

>>> b

array([0, 1],

       [2, 3])

>>> b.transpose()

array([0, 2],

       [1, 3])

=============数组的组合==============

>>> a

array([0, 1, 2],

       [3, 4, 5],

       [6, 7, 8])

>>> b = a*2

>>> b

array([ 0,  2,  4],

       [ 6,  8, 10],

       [12, 14, 16])

1.水平组合

>>> np.hstack((a,b))

array([ 0,  1,  2,  0,  2,  4],

       [ 3,  4,  5,  6,  8, 10],

       [ 6,  7,  8, 12, 14, 16])

>>> np.concatenate((a,b),axis=1)

array([ 0,  1,  2,  0,  2,  4],

       [ 3,  4,  5,  6,  8, 10],

       [ 6,  7,  8, 12, 14, 16])

2.垂直组合

>>> np.vstack((a,b))

array([ 0,  1,  2],

       [ 3,  4,  5],

       [ 6,  7,  8],

       [ 0,  2,  4],

       [ 6,  8, 10],

       [12, 14, 16])

>>> np.concatenate((a,b),axis=0)

array([ 0,  1,  2],

       [ 3,  4,  5],

       [ 6,  7,  8],

       [ 0,  2,  4],

       [ 6,  8, 10],

       [12, 14, 16])

3.深度组合:沿着纵轴方向组合

>>> np.dstack((a,b))

array([[ 0,  0],

        [ 1,  2],

        [ 2,  4],

       [ 3,  6],

        [ 4,  8],

        [ 5, 10],

       [ 6, 12],

        [ 7, 14],

        [ 8, 16]])

4.列组合column_stack()

一维数组:按列方向组合

二维数组:同hstack一样

5.行组合row_stack()

以为数组:按行方向组合

二维数组:和vstack一样

6.==用来比较两个数组

>>> a==b

array([ True, False, False],

       [False, False, False],

       [False, False, False], dtype=bool)

#True那个因为都是0啊

==================数组的分割===============

>>> a

array([0, 1, 2],

       [3, 4, 5],

       [6, 7, 8])

>>> b = a*2

>>> b

array([ 0,  2,  4],

       [ 6,  8, 10],

       [12, 14, 16])

1.水平分割(难道不是垂直分割???)

>>> np.hsplit(a,3)

[array([0],

       [3],

       [6]),

 array([1],

       [4],

       [7]),

array([2],

       [5],

       [8])]

split(a,3,axis=1)同理达到目的

2.垂直分割

>>> np.vsplit(a,3)

[array([0, 1, 2]), array([3, 4, 5]), array([6, 7, 8])]

split(a,3,axis=0)同理达到目的

3.深度分割

某三维数组:::

>>> d = np.arange(27).reshape(3,3,3)

>>> d

array([[ 0,  1,  2],

        [ 3,  4,  5],

        [ 6,  7,  8],

       [ 9, 10, 11],

        [12, 13, 14],

        [15, 16, 17],

       [18, 19, 20],

        [21, 22, 23],

        [24, 25, 26]])

深度分割后(即按照深度的方向分割)

注意:dsplite只对3维以上数组起作用

raise ValueError('dsplit only works on arrays of 3 or more dimensions')

ValueError: dsplit only works on arrays of 3 or more dimensions

>>> np.dsplit(d,3)

[array([[ 0],

        [ 3],

        [ 6],

       [ 9],

        [12],

        [15],

       [18],

        [21],

        [24]]), array([[ 1],

        [ 4],

        [ 7],

       [10],

        [13],

        [16],

       [19],

        [22],

        [25]]), array([[ 2],

        [ 5],

        [ 8],

       [11],

        [14],

        [17],

       [20],

        [23],

        [26]])]

===================数组的属性=================

>>> a.shape  #数组维度

(3, 3)

>>> a.dtype  #元素类型

dtype('int32')

>>> a.size  #数组元素个数

9

>>> a.itemsize  #元素占用字节数

4

>>> a.nbytes  #整个数组占用存储空间=itemsize*size

36

>>> a.T  #转置=transpose

array([0, 3, 6],

       [1, 4, 7],

       [2, 5, 8])

flat属性

相关文章

  • NumPy学习(三)

    一、用于数组的文件输入输出 np.save和np.load是读写磁盘数组数据的两个主要函数,默认情况下,数组是以未...

  • numpy & pandas

    经过前面洋洋洒洒的学习,进入了第三部分的学习,主要学习了前两章numpy以及pandas,numpy相对还是较为简...

  • Numpy学习笔记(三)

    【转载】Numpy教程 复制与视图 完全不拷贝简单的赋值不拷贝数组对象或它们的数据 视图(view)和浅复制不同的...

  • 2019-09-11丨创作101第一季丨第15天丨学习笔记

    实践过程:NumPy数组对象基础(一)——Python示例 NumPy作为Python的第三方库,是学习数据分析、...

  • Pandas入门教程

    NumPy、Pandas、Scipy是python的三个库,也是数据分析的常用库。其中,numpy学习强烈推荐Nu...

  • numpy 学习(待更新)

    numpy 学习 标签(空格分隔): 机器学习 Numpy 入门 一、安装 pip install numpyor...

  • 18年第50周检视

    一,学习 最近继续和access, numpy抗争,希望持续有效,目前numpy的教材看完了前三章,希望18年内能...

  • Numpy 学习图谱

    在学习 Numpy 的时候,整理了一份 Numpy 学习图谱,希望同样可以帮助到想要入门 Numpy 的朋友。 N...

  • Python—Numpy学习笔记(三)Numpy的运算

    注:本系类笔记采用的是Python3.5X版本,编程环境为Windows64位下的Anaconda所有代码部分均为...

  • Python-03 ~ 机器学习库 之 NumPy

    NumPy是机器学习中最常用的计算科学库,今天就来看看吧 NumPy简单介绍 NumPy的简单介绍:NumPy是机...

网友评论

      本文标题:numpy学习(三)

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