numpy使用方法大全(一)

numpy 操作大全

数组的声明

声明一个一维数组(就是一行N列的数组)

import numpy as np
array1=np.array([1,2,3,4,5],dtype='int32')                           
print(array1)
print(array1.shape)
print(array1.ndim)
print(array1.dtype)
print(array1.size)
[1 2 3 4 5]
(5,)
1
int32
5

声明一个2行N列的数组(二维数组)

array2=np.array([[1,2,3,4,5],[6,7,8,9,10]])                           
print(array2)
print(array2.shape)
print(array2.ndim)
print(array2.dtype)
print(array2.size)
[[ 1  2  3  4  5]
 [ 6  7  8  9 10]]
(2, 5)
2
int32
10

声明一个3行N列的数组(二维数组)

array3=np.array([[1,2,3,4,5],[6,7,8,9,10],[16,17,18,19,110]])                           
print(array3)
print(array3.shape)
print(array3.ndim)
print(array3.dtype)
[[  1   2   3   4   5]
 [  6   7   8   9  10]
 [ 16  17  18  19 110]]
(3, 5)
2
int32

数组指定元素的获取

print(array1[0])
print(array2[0])
print(array3[0])
#编程语言常用的方法
print(array2[0][1])
# numpy自己的方法 array[row,column]
print(array2[0,1])
1
[1 2 3 4 5]
[1 2 3 4 5]
2
2

数组指定一行数据的获取

# 编程语言方式的方法 array[rowindex]
print(array2[0])
print(array2[1])
print(array3[2])
# numpy特有的方法 array[r,:]
print(array2[0,:])
print(array2[1,:])
print(array3[2,:])
[1 2 3 4 5]
[ 6  7  8  9 10]
[ 16  17  18  19 110]
[1 2 3 4 5]
[ 6  7  8  9 10]
[ 16  17  18  19 110]

数组指定一列数据的获取

# numpy特有的方法 array[:,r]
print(array2[:,0])
print(array2[:,1])
print(array3[:,3])
[1 6]
[2 7]
[ 4  9 19]

数组指定一行一定范围一定步长的元素的获取

# numpy特有的方法 array[row,startindex:endindex:step]
print(array2[0,0:5:1])
print(array2[0,0:5:2])
[1 2 3 4 5]
[1 3 5]

自动生成数组

生成N个全零的一维数组

array11= np.zeros((5),dtype='int32')
print(array11)
[0 0 0 0 0]

生成N个全1的一维数组

array22= np.ones(5)
print(array22)
[1. 1. 1. 1. 1.]

生成全零或者全1的几行几列的2维数组

array33=np.zeros((3,2),dtype='int32')
print(array33)
array44=np.ones((3,2),dtype='int32')
print(array44)
[[0 0]
 [0 0]
 [0 0]]
[[1 1]
 [1 1]
 [1 1]]

生成指定数值的N行XM列的2维数组

# np.full((r,c),value,dtype='int32')

array55=np.full((3,2),99,dtype='int32')
print(array55)
[[99 99]
 [99 99]
 [99 99]]

模仿一个数组的结构生成一个指定值但结构一样的数组

array66=np.full_like(array55,66)
print(array66)
array77=np.full(array66.shape,77)
print(array77)
[[66 66]
 [66 66]
 [66 66]]
[[77 77]
 [77 77]
 [77 77]]

生成一个N行XM列随机小数的数组

array88=np.random.rand(3,2)
print(array88)

array99=np.random.random_sample(array77.shape)
print(array99)
[[0.78484645 0.5317449 ]
 [0.87033579 0.20435529]
 [0.94865879 0.29997981]]
[[0.90297607 0.9602354 ]
 [0.04243961 0.74916429]
 [0.18517986 0.73844379]]

生成一个N行XM列一定范围内随机整数的数组

# np.random.randint(minvalue,maxvalue,size=(r,c))

array000=np.random.randint(-100,100,size=(3,2))
print(array000)
[[ 25 -80]
 [ 21  -4]
 [ 71 -94]]
### 竖向重复一个数组

array111=np.array([[1,2,3]])
array222=np.repeat(array111,3,axis=0)
print(array222)


### 横向重复一个数组
array333=np.repeat(array111,3,axis=1)
print(array333)

[[1 2 3]
 [1 2 3]
 [1 2 3]]
[[1 1 1 2 2 2 3 3 3]]

矩阵替换

#生成一个5行成5列的2组矩阵
arraybigpic=np.ones((5,5))
print(arraybigpic)
#生成一个3X3的替换矩阵
arraysmallpic=np.zeros((3,3))
print(arraysmallpic)
#3X3中间的元素变成9
arraysmallpic[1,1]=9
print(arraysmallpic)
#替换到大矩阵的中间去
arraybigpic[1:-1,1:-1]=arraysmallpic #第一个1:-1表示第一行到倒数第1行,第2个1:-1是第一列到倒数第1列的意思
print(arraybigpic)
[[1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]]
[[0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]]
[[0. 0. 0.]
 [0. 9. 0.]
 [0. 0. 0.]]
[[1. 1. 1. 1. 1.]
 [1. 0. 0. 0. 1.]
 [1. 0. 9. 0. 1.]
 [1. 0. 0. 0. 1.]
 [1. 1. 1. 1. 1.]]

数组的引用拷贝和深拷贝

#引用拷贝会改变任意一个数组都会一起改变
array444=np.array([1,2,3,4,5])
array555=array444
array555[0]=100
print(array444,array555)

#深拷贝,深拷贝是完成当成另一个新的数组,改变一个不会影响另一个
array666=array444.copy()
array666[0]=1000
print(array666,array444)
[100   2   3   4   5] [100   2   3   4   5]
[1000    2    3    4    5] [100   2   3   4   5]

2维数组转1维数组或转成N行X1的数组

ary =np.ones((3,3))
print(ary)
ary2=ary.reshape(1,ary.size)
print(ary2)
ary3=ary.reshape(ary.size,1)
print(ary3)
[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]
[[1. 1. 1. 1. 1. 1. 1. 1. 1.]]
[[1.]
 [1.]
 [1.]
 [1.]
 [1.]
 [1.]
 [1.]
 [1.]
 [1.]]

順便介紹個編程書網站 www.forbooks.xyz

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值