以下是NumPy中一些常用的操作及其相应的代码示例:

创建NumPy数组:

import numpy as np

# 从Python列表创建一维数组
a = np.array([1, 2, 3, 4, 5])
print(a)
# 从Python列表创建二维数组
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)
# 用zeros创建一个全为0的数组
c = np.zeros((3, 3))
print(c)
# 用ones创建一个全为1的数组
d = np.ones((2, 2))
print(d)
# 用arange创建一个一维数组
e = np.arange(10)
print(e)

数组的基本属性:

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
# 数组的维度
print(a.ndim) # 数组的形状
print(a.shape)
# 数组中元素的总数
print(a.size)
# 数组中元素的数据类型
print(a.dtype)

数组的索引和切片:

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])

# 访问单个元素
print(a[0, 0])
# 访问一整行
print(a[0, :])
# 访问一整列
print(a[:, 1])
# 切片操作
print(a[1:, 1:])

数组的运算:

import numpy as np

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
# 数组的加法
print(a + b)
# 数组的减法
print(a - b)
# 数组的乘法
print(a * b)
# 数组的矩阵乘法
print(np.dot(a, b))

数组的统计操作:

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
# 数组中所有元素的和
print(a.sum())
# 数组中每一行的和
print(a.sum(axis=1))
# 数组中每一列的和
print(a.sum(axis=0))
# 数组中的最小值
print(a.min())
# 数组中的最大值
print(a.max())

数组的变形和重塑:

import numpy as np

a = np.array([[1, 2], [3, 4], [5, 6]])
# 将数组变形成一维数组
b = a.reshape(-1)
print(b)
# 将数组变形成三行两列的二维数组
c = a.reshape(3, 2)
print(c)
# 将数组变形成两行三列的二维数组
d = a.reshape(2, 3)
print(d)
# 将数组转置
e = a.T
print(e)

数组的堆叠和拆分:

import numpy as np

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
# 水平堆叠数组
c = np.hstack((a, b))
print(c)
# 垂直堆叠数组
d = np.vstack((a, b))
print(d)
# 将一维数组分割成多个数组
e = np.array([1, 2, 3, 4, 5, 6])
f = np.split(e, 3)
print(f)
# 将二维数组按行拆分成多个数组
g = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
h = np.split(g, 3, axis=0)
print(h)
# 将二维数组按列拆分成多个数组
i = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
j = np.split(i, 3, axis=1)
print(j)

数组的广播:

a = np.array([[1, 2], [3, 4]])
b = np.array([10, 20])
# 数组的广播
c = a + b
print(c)
# 数组的广播
d = a * 2
print(d)

数组的逻辑运算:

import numpy as np

a = np.array([1, 2, 3, 4])
b = np.array([2, 4, 6, 8])
# 数组的比较运算
c = a == b
print(c)
# 数组的逻辑运算
d = np.logical_and(a > 1, b < 5)
print(d)
# 数组的逻辑运算
e = np.logical_or(a < 2, b > 7)
print(e)

数组的统计运算:

import numpy as np

a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])

# 求数组的最大值、最小值、平均值、中位数、标准差、方差
b = np.max(a)
c = np.min(a)
d = np.mean(a)
e = np.median(a)
f = np.std(a)
g = np.var(a) print(b, c, d, e, f, g)

数组的排序:

import numpy as np

a = np.array([3, 1, 4, 2, 6, 5])
# 对数组进行排序
b = np.sort(a)
print(b)
# 对数组进行逆序排序
c = np.sort(a)[::-1]
print(c)
# 返回数组排序的下标
d = np.argsort(a)
print(d)

矩阵运算:

import numpy as np

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
# 矩阵相乘
c = np.dot(a, b)
print(c)
# 矩阵的迹
d = np.trace(a)
print(d)
# 矩阵的行列式
e = np.linalg.det(a)
print(e)
# 矩阵的逆
f = np.linalg.inv(a)
print(f)

随机数生成:

import numpy as np
# 生成指定范围内的随机整数
a = np.random.randint(0, 10, size=5)
print(a) # 生成指定范围内的随机浮点数
b = np.random.uniform(0, 1, size=5)
print(b) # 生成正态分布的随机数
c = np.random.normal(0, 1, size=5)
print(c) # 生成指定概率分布的随机数
d = np.random.choice([1, 2, 3], size=5, p=[0.1, 0.3, 0.6])
print(d)

数组的复制:

import numpy as np

a = np.array([1, 2, 3, 4, 5])

# 浅复制数组
b = a.view()
print(b) # 深复制数组
c = a.copy()
print(c)

数组的拼接和分割:

import numpy as np

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]]) # 水平拼接数组
c = np.concatenate((a, b), axis=1)
print(c) # 垂直拼接数组
d = np.concatenate((a, b), axis=0)
print(d) # 水平分割数组
e = np.hsplit(c, 2)
print(e) # 垂直分割数组
f = np.vsplit(d, 2)
print(f)

数组的元素操作:

import numpy as np

a = np.array([1, 2, 3, 4, 5])

# 数组的切片操作
b = a[1:4]
print(b) # 数组的索引操作
c = a[[0, 2, 4]]
print(c) # 数组的赋值操作
a[2:4] = [6, 7]
print(a) # 数组的去重操作
d = np.unique([1, 2, 3, 3, 4, 5, 5])
print(d)

数组的线性代数:

import numpy as np

a = np.array([[1, 2], [3, 4]])
b = np.array([5, 6]) # 求解线性方程组
c = np.linalg.solve(a, b)
print(c) # 计算特征值和特征向量
d, e = np.linalg.eig(a)
print(d, e) # 计算奇异值分解
f, g, h = np.linalg.svd(a)
print(f, g, h)

数组的傅里叶变换:

import numpy as np
import matplotlib.pyplot as plt # 生成信号
t = np.linspace(0, 1, 1000)
x = np.sin(2 * np.pi * 5 * t) + np.sin(2 * np.pi * 10 * t) # 对信号进行傅里叶变换
y = np.fft.fft(x) # 绘制傅里叶变换后的频谱图
freqs = np.fft.fftfreq(len(x), t[1] - t[0])
plt.plot(freqs, np.abs(y))
plt.show()

数组的统计:

import numpy as np

a = np.array([1, 2, 3, 4, 5])

# 数组的和
b = np.sum(a)
print(b) # 数组的平均值
c = np.mean(a)
print(c) # 数组的方差和标准差
d = np.var(a)
e = np.std(a)
print(d, e) # 数组的最小值和最大值
f = np.min(a)
g = np.max(a)
print(f, g) # 数组的排序
h = np.sort(a)
print(h)

数组的元素比较:

import numpy as np

a = np.array([1, 2, 3, 4, 5])
b = np.array([5, 4, 3, 2, 1]) # 逐个元素比较
c = a == b
print(c) # 数组比较
d = np.array_equal(a, b)
print(d)

numpy常用的操作的更多相关文章

  1. numpy常用矩阵操作

    1.删除列 column_to_delete = [0, 1, 2] arr = np.delete(arr, [0, 1, 2], axis=1) 2.归一化 arr = normalize(arr ...

  2. Numpy 常用矩阵计算函数

    基本属性 在做一些数据分析的时候,我们通常会把数据存为矩阵的形式,然后python本身对于矩阵的操作是不够的,因此出现了numpy这样一个科学开发库来进行python在次上面的不足. Numpy's ...

  3. numpy 常用工具函数 —— np.bincount/np.average

    numpy 常用工具函数 —— np.bincount/np.average numpy 常用api(一) numpy 常用api(二) 一个函数提供 random_state 的关键字参数(keyw ...

  4. Mysql常用表操作 | 单表查询

    160905 常用表操作 1. mysql -u root -p 回车 输入密码   2. 显示数据库列表 show databases     3. 进入某数据库 use database data ...

  5. SNMP常用数据操作

    SNMP常用数据操作 snmp编程中常见的数据类型基本上就是integer32/oct_str(字节数组)/counter64/timeticks/dateAndTime这些.很多其它的比如Truth ...

  6. 常用SQL操作(MySQL或PostgreSQL)与相关数据库概念

    本文对常用数据库操作及相关基本概念进行总结:MySQL和PostgreSQL对SQL的支持有所不同,大部分SQL操作还是一样的. 选择要用的数据库(MySQL):use database_name; ...

  7. 总结Selenium自动化测试方法(四)WebDriver常用的操作

    四.WebDriver常用的操作 1.控制浏览器操作 #控制浏览器的大小 self.driver.set_window_size(480,800) #控制浏览器返回 self.driver.back( ...

  8. MATLAB 常用形态学操作函数

    常用形态学操作函数(转自:http://blog.sina.com.cn/s/blog_4c52e9e20100e5if.html) 1.dilate函数 该函数能够实现二值图像的膨胀操作,有以下形式 ...

  9. 关于Properties类常用的操作

    import java.io.*;import java.util.Enumeration;import java.util.Properties;/** * 关于Properties类常用的操作 * ...

  10. Jedis对Redis的常用命令操作

    本篇主要总结一些Jedis对Redis的常用命令操作: 1.对key操作命令 2.对String操作命令 3.对List操作命令 4.对Set操作命令 5.对Hash操作命令 6.排序操作指令 一.项 ...

随机推荐

  1. MySQL_20200417

    MySQL安装与卸载 SQL语句与Oracle大致相同 主要使用 Navicat for MySQL进行数据库操作 MySQL常用的命令: 登录:mysql -uroot -p  /mysql -ur ...

  2. Mysql 的用户权限等操作管理与设置(创建、授权、修改、查看)

    注:请在 MySql 的客户端操作 1.创建用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password';//例 CREATE USER 'use ...

  3. ubuntu通过ftp向小米手机传输多个文件

    输入ftp命令,连接手机 root@wanboo-Inspiron-5570:~# ftp 192.168.1.104 2121 Connected to 192.168.1.104. 220 Swi ...

  4. 狂神的学习笔记demo11(包机制)

    无法生成子包的问题:设置图标里的Compact Middle Packages勾去掉 //定义包 package package com.panda.base1; //导入包import import ...

  5. Python机器学习/LogisticRegression(逻辑回归模型)(附源码)

    LogisticRegression(逻辑回归) 逻辑回归虽然名称上带回归,但实际上它属于监督学习中的分类算法. 1.算法基础 LogisticRegression基本架构源自于Adline算法,只是 ...

  6. squad经验总结

    啊美丽卡:M1A2 - TANKM2A3 - BLDL/M2A3M1126 - SCKMATV - RWS(电摇),ZCC(手摇)MATV(TOW) - TOW车M989 - 补给卡/运兵卡 俄军 8 ...

  7. 10.7 2020 实验 5:OpenFlow 协议分析和 OpenDaylight 安装

    一.实验目的 回顾 JDK 安装配置,了解 OpenDaylight 控制的安装,以及 Mininet 如何连接:通过抓包获取 OpenFlow 协议,验证 OpenFlow 协议和版本,了解协议内容 ...

  8. C++初识指针之一

    新手学习C/C++都跳不过去的地方,就是指针,用的话,确实好用,但是概念比较绕, 指针的通俗说法 1.简单的来说,就是说每一个变量,在电脑内都占一个地方,这个地方用一个16进掉的编号来进行标记,类似于 ...

  9. VS 2022创建ATL组件 (C++)

    https://www.cnblogs.com/chechen/p/8119018.html 步骤如下: 1.新建ATL项目 打开Visual Studio 2022 新建ATL项目 2.添加接口类. ...

  10. mysql查询增加自增列

    mysql> SELECT a.user, @i:=@i+1 as id FROM user a,(SELECT @i:=0) b; +------------------+------+| u ...