python之numpy

一、数组与矩阵

        矩阵是数组的一个分支,可以通用,但是数组灵活,速度更快

        for要先进行遍历,而numpy直接进行计算

二、创建数组的方法

python之numpy_第1张图片

        运行结果:

  1. array

将输入数据转换为ndarray,输入数据可以是列表、数组、元组以及其他序列,如果不指明数据类型,将自动推断,默认复制所有输入数据

array的属性

作用

shape

返回一个元组,标识array的维度,[形状,几行,几列]

ndim

返回一个数字,表示数组的维度

size

返回一个数字,表示所有数据元素的数目

dtype

返回数组元素的数据类型

 

        2.arange

        python内建函数range的数组版,返回一个数组

        np.arange(开始,结束,步长)

 

        3.使用ones创建全是1的数组

                np.ones(shape,dtype=None,order='c')

 

m=np.ones((2,3))

print(m)

n=np.ones((5,))

print(n)

l=np.ones((5))

print(l)

 

        4.使用zeros创建全是0的数组

            np.zeros(shape,dtype=None,order='c')

 

        5.full创建指定值的数组

            np.full(shape,fill_value,dtype=None,order='c')

                 python之numpy_第2张图片

                结果:

                 python之numpy_第3张图片

 

        6.多维数组

           可以理解为几块的几维数组

o=np.zeros((2,3,3))

print(o,o.shape,o.ndim,o.size)

                 python之numpy_第4张图片

  7.返回与原数组相同形状与数据类型的数组

np.zeros_like(原数组)

np.ones_like()

np.ones_like()

 

        8.random模块生成随机数组

np.random.randn(数),传一个数就是一维,n个数就是n维 

三、数组的计算

        1.reshape不改值修改形状

d=np.arange(10).reshape(2,5)#2和5相乘必须为10

print(d)

        2.加减乘除

加减乘除是每一个元素都做同样的变换

总结:

                        a.形状一样的数组对应位置进行计算;

                        b.一维和多维数组可以计算,只是在某一维度上是一样的形状,仍然按位置进行计算(在维度那一方进行计算,相当于将一维数组进行扩充,每一维和最开始的一维都相同,多维数组的每一维都减一维数组)

python之numpy_第5张图片

 

        3.广播原则

让所有输入数组都想其中形状最长的数组看齐,形状不足的部分都通过在前面加1补齐;

输出数组的形状都是输入数组总装的各个维度上的最大值;

如果输入数组的某个维度和输出数组的某个维度的长度相同或者长度为1,这个数组能够用来计算,否则出错;

当输入数组的某个维度的长度为1,沿着此维度运算时都用此维度上的第一组值。

 

四、基础索引与切片

一维数组的索引类似于列表的索引

多维数组的索引

         python之numpy_第6张图片

        结果:

         python之numpy_第7张图片

五、布尔索引

import numpy as np

a=np.arange(10)

print(a)

b=a>5

print(b)

print(a[b])

将数组进行0,1化

a[a<=5]=0

a[a>5]=1

print(a)

六、Numpy的轴

二维数组行时0轴,列是1轴

三维数组块时0轴,行是1轴,列是2轴

数组有几维就有几个轴

        转置换轴

        行列转置:数组.transpose()

         python之numpy_第8张图片

        轴转置:数组.swapaxes(1,0)

​​

你可能感兴趣的:(numpy,python)