numpy基础应用

本文介绍NumPy库的基础操作,包括数组创建、数值计算、数组属性获取等实用技巧。通过实例展示如何使用NumPy简化常见数学运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、numpy的导入:import numpy as np

2、查看numpy的版本:print(np.__version__)

3、创建指定长度为空数组:np.zeros()

4、创建指定维数元素全为1的数组

5、查看任一数组的内存

6、创建一个指定值域范围的向量:range()

7、实现向量反转

8、向指定矩阵中填充指定连续数值

9、找到指定数组中非0元素的索引

10、创建指定维数的单位矩阵

11、创建指定维数的随机数组

12、找出指定数组中元素的最值

13、求一个向量元素的平均值

14、如何修改数组的边界和内部元素

15、设置矩阵的对角线的值

16、将一个矩阵设置成棋盘样式


1、numpy的导入:import numpy as np

2、查看numpy的版本:print(np.__version__)

        查看numpy的配置:np.show_config()

3、创建指定长度为空数组:np.zeros()

        np.zeros()——返回来一个给定形状和类型的用0填充的数组;
        语法结构:zeros(shape, dtype=float, order=‘C’)。

        shape:形状、dtype:数据类型、order:可选参数,c代表与c语言类似,行优先;F代表列优先

#用zeros()创建指定长度的空数组
import numpy as np
a=np.zeros([3,4],int)
b=np.zeros((3,4),float)
print('a=',a)
print('b=',b)

          结果:

        a= [[0 0 0 0]
         [0 0 0 0]
         [0 0 0 0]]

        b= [[0. 0. 0. 0.]
         [0. 0. 0. 0.]
         [0. 0. 0. 0.]]

4、创建指定维数元素全为1的数组

#创建指定维数元素全为1的数组
data=np.ones((5,5))
print('5×5数组:',data)
        5×5数组: [[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.]]

5、查看任一数组的内存

a=np.zeros([3,4],int)
b=np.zeros((3,4),float)
print('%d bytes'%(a.size*a.itemsize))
print('%f bytes'%(b.size*b.itemsize))

        结果:

        48 bytes
        96.000000 bytes

6、创建一个指定值域范围的向量:range()

#创建一个10—50的向量,并修改第25个值为0
data=np.arange(10,51)
data[24]=0
print(data)

        结果:

        [10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
          0 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50]

7、实现向量反转

#实现向量反转
data=[[1,2,3],[4,5,6],[7,8,9]]
data=data[::-1]
print(data)

        结果: [[7, 8, 9], [4, 5, 6], [1, 2, 3]]

8、向指定矩阵中填充指定连续数值

#创建一个3×4,值为10-21的矩阵 
data=np.arange(10,22).reshape(3,4)
print(data)

        结果:

        [[10 11 12 13]
         [14 15 16 17]
         [18 19 20 21]]

9、找到指定数组中非0元素的索引

#找到指定矩阵非0元素的索引
data1=np.nonzero([1,2,3,0,4,0])
print('一维:',data1)

data2=[[7, 8, 0],[0, 5, 0],[1, 0, 3]]
nz=np.nonzero(data)
print('二维:',nz)

data3=[[[0,0],[1,0]],
        [[0,0],[1,0]],
        [[0,0],[1,0]]]
print('三维:',np.nonzero(data3))
        一维: (array([0, 1, 2, 4], dtype=int64),)
        二维: (array([0, 0, 1, 2, 2], dtype=int64), array([0, 1, 1, 0, 2], dtype=int64))
        三维: (array([0, 1, 2], dtype=int64), array([1, 1, 1], dtype=int64), array([0, 0, 0], dtype=int64))

10、创建指定维数的单位矩阵

#创建指定维数的单位矩阵
data=np.eye(4)
print(data)
4×4单位矩阵: [[1. 0. 0. 0.]
              [0. 1. 0. 0.]
              [0. 0. 1. 0.]
              [0. 0. 0. 1.]]

11、创建指定维数的随机数组

#创建指定维数的随机数组
data1=np.random.random((2,2))
print("2×2的数组:",data1)

data2=np.random.random((2,2,3))
print("2×2×3的数组:",data2)
2×2的数组: [[0.13873439 0.24154541]
            [0.10411372 0.99342483]]
2×2×3的数组:[[[0.58784904 0.76862869 0.49496972]
              [0.43583442 0.51186846 0.86198214]]

             [[0.61422497 0.89242517 0.37251243]
              [0.21163412 0.44277391 0.87183754]]]

12、找出指定数组中元素的最值

#找出指定数组中元素的最值
data=[[23,45,67],[98,12,65]]
data1 = np.array(data) #将列表转为array格式
datamin,datamax=data1.min(),data1.max()
print("最小值:",datamin,"  最大值:",datamax)
        最小值: 12   最大值: 98

13、求一个向量元素的平均值

#求一数组元素的平均值
data=[[23,45,67],[98,12,65]]
data1 = np.array(data) #将列表转为array格式
m=data1.mean()
print('数组元素的平均值:',m)
        数组元素的平均值: 51.666666666666664

14、如何修改数组的边界和内部元素

       

data=np.random.random((5,5))
data[1:-1,1:-1]=0#将内部元素改为0
print(data)
        [[0.89627397 0.94781153 0.8114034  0.56224768 0.45138078]
         [0.23896854 0.         0.         0.         0.01757302]
         [0.12720385 0.         0.         0.         0.09280199]
         [0.34245612 0.         0.         0.         0.89310174]
         [0.9163987  0.39899548 0.95962938 0.13380556 0.62321521]]

修改边界的值       

        pad(array, pad_width, mode, **kwargs)

        array——表示需要填充的数组;

         pad_width——表示每个轴(axis)边缘需要填充的数值数目。
        参数输入方式为:((before_1, after_1), … (before_N, after_N)),其中(before_1, after_1)表示第1轴两边缘分别填充before_1个和after_1个数值。取值为:{sequence, array_like, int}

        mode——表示填充的方式(取值:str字符串或用户提供的函数),总共有11种填充模式;

‘constant’——表示连续填充相同的值,每个轴可以分别指定填充值,constant_values=(x, y)时前面用x填充,后面用y填充,缺省值填充0

‘edge’——表示用边缘值填充

‘linear_ramp’——表示用边缘递减的方式填充

‘maximum’——表示最大值填充

‘mean’——表示均值填充

‘median’——表示中位数填充

‘minimum’——表示最小值填充

‘reflect’——表示对称填充

‘symmetric’——表示对称填充

‘wrap’——表示用原数组后面的值填充前面,前面的值填充后面

#如何修改数组的边界元素
data=np.arange(5,9).reshape(2,2)
data1=np.pad(data,((1,1),(1,1)),'constant',constant_values = (2,0))#第一个(1,1)---上下,后一个(1,1)---前后
print(data1)
print("--------------")


#在数组边缘填充constant_values指定的数值
#(3,2)表示在A的第[0]轴填充(二维数组中,0轴表示行),即在0轴前面填充3个宽度的0
#  比如数组A中的95,96两个元素前面各填充了3个0;在后面填充2个0,比如数组A中的97,98两个元素后面各填充了2个0
#(2,3)表示在A的第[1]轴填充(二维数组中,1轴表示列),即在1轴前面填充2个宽度的0,后面填充3个宽度的0
#constant_values表示填充值,且(before,after)的填充值等于(0,0)
data2=np.pad(data,((3,2),(2,3)),'constant',constant_values = (2,0))  
print(data2)
        [[2 2 2 0]
         [2 5 6 0]
         [2 7 8 0]
         [2 0 0 0]]
        --------------
        [[2 2 2 2 0 0 0]
         [2 2 2 2 0 0 0]
         [2 2 2 2 0 0 0]
         [2 2 5 6 0 0 0]
         [2 2 7 8 0 0 0]
         [2 2 0 0 0 0 0]
         [2 2 0 0 0 0 0]]

15、设置矩阵的对角线的值

        numpy.diag(v,k=0)

        若V为一维数组,则将数组元素作为对角线转换成方阵(非对角线元素为0);若V为非一维,则返回方阵的对角线(或非对角线)元素。k表示对角线移动,正数上移,负数下移

data=[1,2,3]
data=np.diag(data,0)
print(data)
print('----------')

print(np.diag(data,0))
        [[1 0 0]
         [0 2 0]
         [0 0 3]]
        ----------
        [1 2 3]

16、将一个矩阵设置成棋盘样式

#将一个矩阵设置成棋盘样式
data=np.zeros((5,5),dtype=int)
data[::2,::2]=1
data[1::2,1::2]=1
print(data)
        [[1 0 1 0 1]
         [0 1 0 1 0]
         [1 0 1 0 1]
         [0 1 0 1 0]
         [1 0 1 0 1]]

本文仅供学习交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值