numpy模块

Posted demiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy模块相关的知识,希望对你有一定的参考价值。

第十章、numpy模块

一、导入方式

import numpy as np#约定俗成

二、作用

数组或矩阵的运算

  1. numpy数组

    arr1 = np.array([1,2,3])    #创建一维数组对象
    arr1
    arr2 = np.array([[1,2,3],[4,5,6]])
    arr2                       #二维数组

    三维数组不用numpy模块,用TensorFlow、pytorch模块

  2. 属性

    属性 解释
    T 数组的转置(也就是行和列互换)
    dtype 数组元素的数据类型
    size 数组元素的个数(比如2行3列为6)
    ndim 数组的维数
    shape 数组的维度大小(以元组形式)(比如2行3列为(2,3))
    astype 类型转换
    arr = np.array([[1, 2, 3], [4, 5, 6]])
    print(arr.T)  # 行与列互换   arr1.transpose()也是转置
    -------------------------------------------------------
    [[1 4]
     [2 5]
     [3 6]]

    ```

    切片

    arr = np.array([[1, 2, 3], [4, 5, 6]])
    print(arr[:]) #取出数组所有元素
    print(arr[:, :]) #取出数组所有元素

print(arr[0, :]) #取出第0行到第一行的数组
print(arr[0:1, :]) #取出第0行到第一行的数组,顾头不顾尾
print(arr[0:1, 0:1]) #取出第0行到第一行,第0列到第一列的数组,顾头不顾尾
print(arr[0, 0],type(arr[0, 0])) #取出第0行到第一行,第0列到第一列的数,输出数组类型
print(arr[0, [0,2]]) #取出第0行第0个元素和第2个元素 [1 3]
print(arr[0, 0] + 1) #取出第0行第0列的元素加1 2
```

#取值
arr = np.array([[1, 2, 3], [4, 5, 6]])
arr[0, :] = 0    #将第0行的元素全部变为0
print(arr)
--------------------------------------------
[[0 0 0]
 [4 5 6]]
arr[1, 1] = 1  #将第一行第一列的数字改为1

arr[arr < 3] = 3  # 布尔取值   将小于3的数字全部变为3
print(arr)
#合并
arr1 = np.array([[1, 2, 3], [4, 5, 6]])  # 可变数据类型
arr2 = np.array([[7, 8, 9], [10, 11, 12]])  # 可变数据类型
-------------------------------------------------------
[[1 2 3]
 [4 5 6]]
[[ 7  8  9]
 [10 11 12]]

三、通过函数创建numpy数组

方法 详解
array() 将列表转换为数组,可选择显式指定dtype
arange() range的numpy版,支持浮点数
linspace() 类似arange(),第三个参数为数组长度
zeros() 根据指定形状和dtype创建全0数组
ones() 根据指定形状和dtype创建全1数组
eye() 创建单位矩阵
empty() 创建一个元素全随机的数组
reshape() 重塑形状

四、 numpy数组运算

方法 详解
array() 将列表转换为数组,可选择显式指定dtype
arange() range的numpy版,支持浮点数
linspace() 类似arange(),第三个参数为数组长度
zeros() 根据指定形状和dtype创建全0数组
ones() 根据指定形状和dtype创建全1数组
eye() 创建单位矩阵
empty() 创建一个元素全随机的数组
reshape() 重塑形状

五、重点

随机数种子:所有的随机数是按照随机数种子生成的

时间短则不变,时间长就变

np.random.seed(int(time.time()))

np.random.seed(1) #如果固定了就不会变

arr1 = np.random.rand(3,4) # 可变数据类型

print(arr1)
rs = np.random.RandomState(1) #产生一个随机状态种子,seed为1

print(rs.rand(3,4))

---------------------------------------------------------

[[4.17022005e-01 7.20324493e-01 1.14374817e-04 3.02332573e-01]

[1.46755891e-01 9.23385948e-02 1.86260211e-01 3.45560727e-01]

[3.96767474e-01 5.38816734e-01 4.19194514e-01 6.85219500e-01]]

以上是关于numpy模块的主要内容,如果未能解决你的问题,请参考以下文章

PythonCookbook第十章(模块和包)

第十章-内建模块

Node入门教程(12)第十章:Node的HTTP模块

第十章

第十章 读书笔记

第十章心得体会