numpy基本用法

numpy 用法总结 简介 numpy 是Numerical Python的简称,是高性能的科学计算和数据分析的基础包,包含了大量的矩阵和数组的计算函数。下面来详细了解一下numpy的用法。 # 安装 numpy pip install numpy # 查看numpy的版本 numpy.__version__ # 导入numpy import numpy as np 一、创建ndarray ndarray:numpy中最基础的数据结构,一种多维的数组对象。 创建数组最简单的方法是使用array函数,它接受一切序列的对象,然后产 阅读详情


创建矩阵、查看维度、形状和元素数量

import numpy as np

array = [[1,2,3],
         [4,5,6]]
array = np.array(array)
print(array)
print('number of dim: ', array.ndim)
print('shape: ', array.shape)
print('size: ', array.size)
[[1 2 3]
 [4 5 6]]
number of dim:  2
shape:  (2, 3)
size:  6

numpy数据类型

dtype(np.int64、int32、float64等等)

array = np.array([[1,2,3],
          [4,5,6]], dtype=np.int64)
print(array)
[[1 2 3]
 [4 5 6]]

创建特殊numpy矩阵

np.zeros((2,3))
array([[0., 0., 0.],
       [0., 0., 0.]])
np.ones((2,3), dtype=int)
array([[1, 1, 1],
       [1, 1, 1]])
np.random.random((2,3))
array([[0.22489044, 0.92831268, 0.81584165],
       [0.9038033 , 0.03581653, 0.41887279]])

在未创建数组之前调用此方法,元素的值接近于零;反之为0;若数据类型为int,则为随机数

import numpy as np
np.empty((2,3))
array([[3.56038640e-307, 3.33774490e-307, 1.44635573e-307],
       [9.34598926e-307, 7.56597091e-307, 1.78019625e-306]])

numpy生成range矩阵、等差、等比矩阵、reshape

np.arange(12)
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
np.arange(12).reshape(3,4)
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
np.linspace(0, 20, 5, dtype=int)
np.logspace(1.0,  2.0, 10) 
array([ 10.        ,  12.91549665,  16.68100537,  21.5443469 ,
        27.82559402,  35.93813664,  46.41588834,  59.94842503,
        77.42636827, 100.        ])
np.linspace(0, 20, 24, dtype=int).reshape(2,3,4)
array([[[ 0,  0,  1,  2],
        [ 3,  4,  5,  6],
        [ 6,  7,  8,  9]],

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

矩阵的计算

矩阵元素的加减乘除

a = np.array([[1,2],
              [3,4]])
b = np.arange(4).reshape(2,2)
# c = a+b
# c = a-b
c = a*b
# c = a/b
print(a)
print(b)
print('------')
print(c)
[[1 2]
 [3 4]]
[[0 1]
 [2 3]]
------
[[       inf 2.        ]
 [1.5        1.33333333]]


<ipython-input-36-d4c67e1eaa24>:7: RuntimeWarning: divide by zero encountered in divide
  c = a/b

矩阵的函数sin、cos、boolean

np.sin(a)
np.cos(a)
array([[ 0.54030231, -0.41614684],
       [-0.9899925 , -0.65364362]])
print(a<=2)
[[ True  True]
 [False False]]
print(a==2)
[[False  True]
 [False False]]

矩阵的乘法

print(a)
print(b)
# np.dot(a,b)
a.dot(b)
[[1 2]
 [3 4]]
[[0 1]
 [2 3]]





array([[ 4,  7],
       [ 8, 15]])

矩阵sum、max、min

r = np.random.random((2,3))
print(r)
[[0.29205341 0.83460167 0.70298406]
 [0.65505704 0.93624025 0.51601126]]
print(np.sum(r))
print(np.max(r))
print(np.min(r))
5.862923572296049
0.9865082934926919
0.05031000334319313
print(np.sum(r, axis=0))
print(np.max(r, axis=1))
print(np.min(r, axis=0))
[0.94711045 1.77084192 1.21899532]
[0.83460167 0.93624025]
[0.29205341 0.83460167 0.51601126]

矩阵内部计算

计算元素值最大索引和最小索引

import numpy as np

A = np.arange(2,14).reshape(3,4)
print(A)
print(np.argmax(A))
print(np.argmin(A))
[[ 2  3  4  5]
 [ 6  7  8  9]
 [10 11 12 13]]
11
0

计算矩阵均值,中位数,累加,相差,输出非零元素坐标

print(A)
print(np.mean(A, axis=0))
# print(A.mean())
# print(np.average(A))
print(np.median(A))
print(np.cumsum(A))
print(np.diff(A))
print(np.nonzero(A))
[[ 2  3  4  5]
 [ 6  7  8  9]
 [10 11 12 13]]
[6. 7. 8. 9.]
7.5
[ 2  5  9 14 20 27 35 44 54 65 77 90]
[[1 1 1]
 [1 1 1]
 [1 1 1]]
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))

排序,转置矩阵

B = np.arange(14,2,-1).reshape(3,4)
print(B)
print(np.sort(B))
# print(np.transpose(B))
print(B.T)

print((B.T).dot(B))
[[14 13 12 11]
 [10  9  8  7]
 [ 6  5  4  3]]
[[11 12 13 14]
 [ 7  8  9 10]
 [ 3  4  5  6]]
[[14 10  6]
 [13  9  5]
 [12  8  4]
 [11  7  3]]
[[332 302 272 242]
 [302 275 248 221]
 [272 248 224 200]
 [242 221 200 179]]

截取矩阵(限定下限和上限)`

print(A)
# print(A.clip(5, 10))
print(np.clip(A, 5, 10))
[[ 2  3  4  5]
 [ 6  7  8  9]
 [10 11 12 13]]
[[ 5  5  5  5]
 [ 6  7  8  9]
 [10 10 10 10]]

矩阵的索引

索引

import numpy as np

A = np.arange(2,14).reshape(3,4)
B = np.arange(2,14)

print(A)
print(B)
print(A[2], B[2])
print(A[1][2], A[1,2])
print(A[1][2:], A[1,2:])
[[ 2  3  4  5]
 [ 6  7  8  9]
 [10 11 12 13]]
[ 2  3  4  5  6  7  8  9 10 11 12 13]
[10 11 12 13] 4
8 8
[8 9] [8 9]

迭代

print(A)
print("-----------")
for row in A:
    print(row)

print("-----------")
for col in A.T:
    print(col)
print("-----------")
print(A.flat)
print(A.flatten())
for item in A.flat:
    print(item)
print("-----------")
for item in A.flatten():
    print(item)
[[ 2  3  4  5]
 [ 6  7  8  9]
 [10 11 12 13]]
-----------
[2 3 4 5]
[6 7 8 9]
[10 11 12 13]
-----------
[ 2  6 10]
[ 3  7 11]
[ 4  8 12]
[ 5  9 13]
-----------
<numpy.flatiter object at 0x000001DE3F7647D0>
[ 2  3  4  5  6  7  8  9 10 11 12 13]
2
3
4
5
6
7
8
9
10
11
12
13
-----------
2
3
4
5
6
7
8
9
10
11
12
13

矩阵的合并

A = np.array([1,1,1])
B = np.array([2,2,2])

C = np.vstack((A,B)) # vertical stack
D = np.hstack((A,B)) # horizontal stack
print(C)
print(D)
print(C.shape, D.shape)
[[1 1 1]
 [2 2 2]]
[1 1 1 2 2 2]
(2, 3) (6,)

加维度

nA = np.array([1,1,1])[:,np.newaxis]
nB = np.array([1,1,1])[np.newaxis,:]
print(A)
print(nA)
print(nB)
print(nA.shape, nB.shape)
print(np.vstack((nA, nA)))
print(np.hstack((nA, nA)))
[1 1 1]
[[1]
 [1]
 [1]]
[[1 1 1]]
(3, 1) (1, 3)
[[1]
 [1]
 [1]
 [1]
 [1]
 [1]]
[[1 1]
 [1 1]
 [1 1]]
C = np.concatenate((nA,nA,nA,nA), axis = 1)
print(C)
[[1 1 1 1]
 [1 1 1 1]
 [1 1 1 1]]
x = [[1,1,1],
     [1,1,1]]
y = [[2,2,2],
     [2,2,2]]
X = np.array(x)
Y = np.array(y)
z = np.vstack((X,Y))
print(z)
z = np.hstack((X,Y))
print(z)
print(np.concatenate((X,Y,Y,X),axis=0))
print(np.concatenate((X,Y,Y,X),axis=1))
[[1 1 1]
 [1 1 1]
 [2 2 2]
 [2 2 2]]
[[1 1 1 2 2 2]
 [1 1 1 2 2 2]]
[[1 1 1]
 [1 1 1]
 [2 2 2]
 [2 2 2]
 [2 2 2]
 [2 2 2]
 [1 1 1]
 [1 1 1]]
[[1 1 1 2 2 2 2 2 2 1 1 1]
 [1 1 1 2 2 2 2 2 2 1 1 1]]

分割

A = np.arange(12).reshape(3,4)
print(A)
print(np.split(A,3,axis=0))
print(np.split(A,4,axis=1))
print(np.array_split(A,3,axis=1))
print(np.vsplit(A,3))
print(np.hsplit(A,4))
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
[array([[0],
       [4],
       [8]]), array([[1],
       [5],
       [9]]), array([[ 2],
       [ 6],
       [10]]), array([[ 3],
       [ 7],
       [11]])]
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2],
       [ 6],
       [10]]), array([[ 3],
       [ 7],
       [11]])]
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
[array([[0],
       [4],
       [8]]), array([[1],
       [5],
       [9]]), array([[ 2],
       [ 6],
       [10]]), array([[ 3],
       [ 7],
       [11]])]

拷贝

a = np.array([1,2,3,4])
b = a
c = b
a[0] = 11
print(c)
print(c is a)
print("---------")
a = np.array([1,2,3,4])
c = a
c = a.copy()
a[1] = 22
print(c)
[11  2  3  4]
True
---------
[1 2 3 4]
python的numpy库使用详解 本章介绍python是数组库——numpy的使用。全文14000多字详解,几乎涵盖每个知识点。 阅读详情

相关推荐

5、OpenClaw(龙虾助手)飞书机器人完整对接指南(2026最新版)

OpenClaw v2026.2.2+ 版本,防火墙内也能正常工作,是目前最稳定、最简单的企业内部AI助手部署方案。

欢迎光临~知1而N的博客 457

Numpy的用法详细总结

Numpy(Numerical Python),Python的一种开源的数值计算扩展

真正的英雄主义,是看清生活的真相后依然热爱生活 1万+

PX4飞控CAN总线通信深度配置:从menuconfig到驱动加载的完整指南

本文详细解析了PX4飞控中CAN总线通信的深度配置流程,从menuconfig选项设置到驱动加载的完整指南。涵盖硬件抽象层、驱动层和应用层的配置细节,提供实际验证方法和故障排查技巧,帮助开发者高效实现CAN通信,特别适用于无人机和机器人底盘运动控制等场景。

weixin_30374009的博客 501

numpy的使用教程

NumPy的核心数据结构是ndarray,它是一个多维数组,可以存储同质数据类型的元素。这些数组可以是一维、二维或更高维度的,非常适合进行向量化操作和矩阵运算。random。

2108

uniapp 实现RFID识别的实战指南

本文提供了在uniapp中实现RFID识别的完整实战指南。核心在于通过Android系统广播机制,利用uni-app的plus对象调用原生接口,完成与RFID手持设备的“软硬件握手”。文章详细介绍了从环境准备、设备选型、核心代码实现到避坑优化的全流程,帮助开发者快速构建高效的RFID盘点或管理应用。

weixin_29161719的博客 404

9.13华为OD机试真题 新系统 - 手机桌面整理 (Java/Py/C/C++/Js/Go)

华为OD机试真题 新系统【手机桌面整理】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【 手机桌面整理】多语言题解。

qq_45776114的博客 637

numpy基本用法讲解

目录1.创建数组的方法:2.数组的切片操作及改变数组形状的方法3.矩阵运算4.数组中元素运算操作 1.创建数组的方法: 最基本:a=np.array([1,2]),将传入的python列表转化为np数组,注意:源数据是ndarray数据时,array是创建一个新的数组,而 asarray仍旧使用原来的数据源。所以使用asarray创建的数组改变时,原数组也改变了,一般我们都用array. import numpy as np a=np.arange(0,10,2)#创建起始为0,结束为10,但是不包括1

qq_46244851的博客 918

【ESP32摄像头开发实例】-视频流接入Home Assistant

在这个项目中,我们将使用ESP32-CAM板构建一个IP监控摄像头。ESP32摄像头将托管一个视频流媒体网络服务器,您可以使用网络中的任何设备进行访问。

视觉与物联智能 790

numpy基本用法总结(三)

weixin_41796207的博客 324

工业级Modbus ASCII实时监控系统(WinForms完整实现)

本文介绍了一个基于WinForms的工业级Modbus ASCII实时监控系统实现方案。该系统采用经典工控界面布局,包含串口配置、数据采集控制和实时数据显示三大区域。核心功能包括:串口通信参数设置、Modbus从站地址配置、寄存器数据采集、实时数据表格展示和趋势图绘制。系统通过ModbusAsciiClient类实现通信核心,采用定时器轮询机制采集数据,支持最多100个数据点的历史趋势显示。界面设计注重用户体验,配置区位于左侧,主显示区在右侧,底部为状态和日志区,符合工业控制系统的操作习惯。代码示例展示了窗

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 278

【MATLAB例程】基于TDOA定位(两步最小二乘)的三维轨迹定位和UKF滤波,TDOA的锚点可以自适应,附完整代码

该代码实现了一种**融合TDOA(到达时间差)定位与无迹卡尔曼滤波(UKF)**的动态目标轨迹跟踪方案,适用于三维空间中的移动目标定位与滤波。TDOA定位:通过两步加权最小二乘法(TS-WLS)解算目标位置。UKF滤波:对定位结果进行非线性滤波,抑制噪声并提升轨迹平滑性。多维度误差分析:对比滤波前后误差,评估算法性能。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 675

numpy的基本用法,以及创建numpy的单位矩阵

weixin_44274975的博客 7937

Python学习之——2d Numpy基本用法

Python学习之——2d Numpy基本用法 先引入相关的包: import numpy as np import matplotlib.pyplot as plt 1. 创建一个2D的Numpy数组 将一个list转化为一个Numpy数组 a = [[11, 12, 13], [21, 22, 23], [31, 32, 33]] A = np.array(a) A 输出: array([[11, 12, 13], [21, 22, 23], [31, 32, 33]]) 使用ndim属性查

HunGRy_FOOliSHhh的博客 2178

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Numpy基本用法

Numpy的基本用法 Numpy是python最常用的一个库,功能十分的强大。Ndarray是一个具有矩阵运算和复杂广播的能力。这里我们记录一些比较常用的矩阵表达式。 1.ndarry创建 ###array函数可以创建一维或者多维ndarray numpy.array(object,dtype=None,copy=True,ndmin=0) 相关代码如下: arr1 = np.array([1,2,3,4]) arr2 = np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]]

zx759174597的博客 512

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

numpy包的基本用法

numpy基础用法 基本属性 定义数组或矩阵:np.array(里面写参数) 矩阵维度:array.ndim 矩阵形状:array.shape 矩阵元素个数:array.size 矩阵元素数据类型:array.dtype # encoding:utf-8 import numpy as np #定义一个二维矩阵 array = np.array([[1,2,3], ...

Paul_1i的博客 719

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

numpy基本用法总结(一)

weixin_41796207的博客 625

numpy的基本用法

is an important library in Python for data processing and analysis. It provides efficient data structures such as and . Here are some basic usages of .If you are using , you can install with the following command: After installation, import in your Pyth

weixin_70682362的博客 405

numpy基本用法总结(二)

weixin_41796207的博客 502

python-NumPy库的基本用法

创建数组: from numpy import * # 将NumPy库全部导入,不建议这样做,因为容易引起冲突 list1 = [[1, 0, 0, 0], # 创建一个元素为列表的列表,然后将这个列表转换为数组,就成了二维数组 [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] arr1 = arr...

Vivinia的博客 1070

python numpy基本用法

1.数组用法 list_1 = [1,2,3,4] array_1 = np.array(list_1) 这样就可以对array_1进行计算了。 获得二维数组 array_3 = np.array([list_1,list_2]) 获得数组的类型 array_3.dtype 获得数组的元素个数 array_3.size 获得数组行列数 array_3.shape 构...

m0_37756557的博客 322

numpy基本用法总结(四)

weixin_41796207的博客 402

Python学习笔记-Numpy的基本用法

1. 安装使用numpy pip install numpy #安装 import numpy as np #导入 2. ndarray的属性 e.g. 默认类型是 int32,还可以指定类型 也可以直接写类型 3. 数组的基本使用 3.1 生成数组 3.1.1 生成0/1数组 在写代码的时候,通常会生成默认初始值为0或者为1的数组 shape: 指定生成维数,比如要生成2行4列,可以填[2, 4] dtype: 生成数据的类型(如果不指定,默认为float) e.g. ones_like和ze

Akatsuki 809
上一篇: 圆方电脑商城项目
下一篇: django
稚淮粥
博客等级 码龄6年 11粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值