首页 > 其他 > 详细

numpy模块

时间:2019-08-19 15:59:51      阅读:78      评论:0      收藏:0      [点我收藏+]

numpy模块

一、导入方式

import numpy as np

二、作用

数组或矩阵的运算

三、方法

3.1 numpy数组

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

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

3.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]]

3.3 切片

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

3.4 取值

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)

3.5 合并

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]]

print(np.hstack((arr1,arr2))) # 行合并

[[ 1 2 3 7 8 9]
[ 4 5 6 10 11 12]]

print(np.vstack((arr1,arr2))) # 列合并
------------------------------------------------
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]

print(np.concatenate((arr1, arr2))) # 默认列合并
print(np.concatenate((arr1, arr2),axis=1)) # 1表示行;0表示列
-----------------------------------------------------------
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
[[ 1 2 3 7 8 9]
[ 4 5 6 10 11 12]]

3.6 通过函数创建numpy数组











































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

3.7 numpy数组运算



































运算符 说明
+ 两个numpy数组对应元素相加
- 两个numpy数组对应元素相减
两个numpy数组对应元素相乘
/ 两个numpy数组对应元素相除,如果都是整数则取商
% 两个numpy数组对应元素相除后取余数
n 单个numpy数组每个元素都取n次方,如2:每个元素都取平方

3.8 运算函数


sin,cos,tan,aqrt,exp等,只做了解


3.9 额外补充


(了解)


numpy随机数


print(np.random.rand(3,4)) #随机生成一个34的数组

print(np.random.randint(1,10,(3,4))) # 最小值1,最大值10,3*4

print(np.random.choice([1,2,3,4,5],3)) #随机生成一个元素为3个的数组,数组元素在[1,2,3,4,5]内


(重点)


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


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


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官网:https://docs.scipy.org/doc/numpy/reference/?v=20190307135750

numpy模块

原文:https://www.cnblogs.com/yanjiayi098-001/p/11377368.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!