Numpy入门小结

numpy数组

由列表构建数组

import numpy as np 
np.array(list

构建一维数组 :

list1=[1,2,3,4,5]

构建二维数组:

list1=[1,2,3,4,5]
list2=[2,4,6,8,10]
list3=[3,6,9,12,15]
array1=np.array([list1,list2,list3])

list–列表 array–数组

注意:

数组是引用类型,从现有数组创建新数组操作时,一定要copy()

区别:

  • 数组是基于向量的操作,具有向量计算的特性。在科学计算中,常用到矩阵、向量操作,可以用np.array()对列表(list)进行转换。

  • 数组的长度定义后就不能改变,而列表可以改变大小。

  • 数组所有元素都是一个类型,而列表没有限制。

数组的常用方法

1)指定数组类型

参数:array.dtype

eg. 将列表list转换为指定float 类型的数组

array_float=np.array(list1,dtype='float')

如果非要让数组中包含不同类型的元素,将dtype='object'。但是没什么意义。

2)类型转换

函数:astype(‘目标类型’)

eg.将float类型的array_float转换为int类型、str类型

array_int=array_float.astype('int')
array_str=array_float.astype('str')

3)由数组构建列表

函数:array.tolist()

list_cp=array1.tolist()

4)数组的属性

维度:ndim

形状:shape

类型:dtype

大小:size

eg. 查看数组array1的属性 array1=(1,2,3,4,5)

array1.ndim	 

array1.shape	

array1.dtype

array1.size

结果:

1
(5,)
int32
5

6)从数组中提取特定的项

eg.对于二维数组array2,提取前两行 前两列

array2[:2, :2]

7)支持布尔索引

eg. 判断array1中的元素是否都小于4

b=array1<4
print(b)

结果:

[ True True True False False]

bool索引:找出为True的元素

eg. 把判断为True的元素取出来

a=array1[b]
print(a)

结果:

[1 2 3]

8)数组反转

array2:

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

反转行

array2[::-1]

结果:

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

反转列

array2[:,::-1]

结果:

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

反转行和列

array2[::-1,::-1]

结果:

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

8)求最大最小值

所有元素的最大、最小、平均值:np.min(array) …max …min。

行最大值:np.amax(array,axis=1)

列最大值:np.amax(array,axis=0)

9)重构和扁平

array1=[[ 1 2 3 4 5]
[ 2 4 6 8 10]
[ 3 6 9 12 15]]

重构:改变数组的形状,但不改变维数

print(array1.reshape(5,3))

结果:

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

扁平:将多维数组转换为一维数组

  • ​ 方法1:array.flatten()
  • ​ 方法2:array.ravel()
print(array1.flatten())

结果:

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

10)生成序列数、重复数、随机数

序列数

方法1:np.arange(起点,终点,步数) 步数默认为1,起点默认为0,终点不取到

方法2:np.linspace(起点start,终点end,个数num,类型dtype) ,同样是终点不取到

PS:创建0数组 np.zero([行,列])

重复数

a=[1,2,3]

eg. a重复两次

np.tile(a,2)

ed. a中的元素每个重复两次

np.repeat(a,2)

随机数

p.arange(起点,终点,步数) 步数默认为1,起点默认为0,终点不取到

方法2:np.linspace(起点start,终点end,个数num,类型dtype) ,同样是终点不取到

PS:创建0数组 np.zero([行,列])

重复数

a=[1,2,3]

eg. a重复两次

np.tile(a,2)

ed. a中的元素每个重复两次

np.repeat(a,2)

随机数

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值