numpy常用的操作
以下是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常用的操作的更多相关文章
- numpy常用矩阵操作
1.删除列 column_to_delete = [0, 1, 2] arr = np.delete(arr, [0, 1, 2], axis=1) 2.归一化 arr = normalize(arr ...
- Numpy 常用矩阵计算函数
基本属性 在做一些数据分析的时候,我们通常会把数据存为矩阵的形式,然后python本身对于矩阵的操作是不够的,因此出现了numpy这样一个科学开发库来进行python在次上面的不足. Numpy's ...
- numpy 常用工具函数 —— np.bincount/np.average
numpy 常用工具函数 —— np.bincount/np.average numpy 常用api(一) numpy 常用api(二) 一个函数提供 random_state 的关键字参数(keyw ...
- Mysql常用表操作 | 单表查询
160905 常用表操作 1. mysql -u root -p 回车 输入密码 2. 显示数据库列表 show databases 3. 进入某数据库 use database data ...
- SNMP常用数据操作
SNMP常用数据操作 snmp编程中常见的数据类型基本上就是integer32/oct_str(字节数组)/counter64/timeticks/dateAndTime这些.很多其它的比如Truth ...
- 常用SQL操作(MySQL或PostgreSQL)与相关数据库概念
本文对常用数据库操作及相关基本概念进行总结:MySQL和PostgreSQL对SQL的支持有所不同,大部分SQL操作还是一样的. 选择要用的数据库(MySQL):use database_name; ...
- 总结Selenium自动化测试方法(四)WebDriver常用的操作
四.WebDriver常用的操作 1.控制浏览器操作 #控制浏览器的大小 self.driver.set_window_size(480,800) #控制浏览器返回 self.driver.back( ...
- MATLAB 常用形态学操作函数
常用形态学操作函数(转自:http://blog.sina.com.cn/s/blog_4c52e9e20100e5if.html) 1.dilate函数 该函数能够实现二值图像的膨胀操作,有以下形式 ...
- 关于Properties类常用的操作
import java.io.*;import java.util.Enumeration;import java.util.Properties;/** * 关于Properties类常用的操作 * ...
- Jedis对Redis的常用命令操作
本篇主要总结一些Jedis对Redis的常用命令操作: 1.对key操作命令 2.对String操作命令 3.对List操作命令 4.对Set操作命令 5.对Hash操作命令 6.排序操作指令 一.项 ...
随机推荐
- C语言初级阶段7——指针1
C语言初级阶段7--指针1 地址与指针 1.地址:数据在内存中的存储位置编号,是一个常量. 2.指针:指针的本质就是地址. 指针变量的定义和声明 1.指针变量:存储的数据是地址. 2.定义方法:类型* ...
- C语言初级阶段4——数组3——字符数组
C语言初级阶段4--数组3--字符数组 字符数组的定义:储存字符类型数据的集合 1.注意:如果用字符串给字符数组初始化,那么不需要{},但是要有"". 2.%s :用来输出字符串的 ...
- MATLAB默认路径修改
笔者曾尝试在软件界面的"设置路径"或者Parallel中修改默认路径,但多次尝试均失败.后来经人提点,MATLAB默认文件夹路径可以在桌面图标属性中"起始位置" ...
- appium之手机操作的方法
Appium内置方法,来操作手机.在做app自动化时,可以内置方法的基本上,对一些常用的手机操作进行方法的封装. 常用的方法有: 获取手机分辨率: driver.get_window(size) # ...
- 02-Spring基于XML的Bean属性注入
属性值注入:就是给属性赋值 创建一个Account类: public class Account implements Serializable { private int aid; private ...
- DVWA-Insecure CAPTCHA(不安全的验证码)
Insecure CAPTCHA,意思为不安全的验证码 全称为Completely Automated Public Turing Test to Tell Computers and Humans ...
- 对于Java课上问题的探究和解答
问题一:子类和父类的继承关系(extends) 需要强调的是,子类自动声明继承父类中的public和protected的成员 其中,public成员,外界可以自由访问: private成员,外界无法进 ...
- Axios的相关应用
Axios 的案例应用 要求利用axios实现之前利用AJAX实现的验证用户是否登录的案例 鉴于这两种语法的相似性,只需要在AJAX里面的注册界面里面的script标签里面包含的代码修改为如下代码即可 ...
- RealWorldCTF渗透赛第二期复现-ctfshow
比赛概述 开始时间:2023年3月10日15时 环境保留时间:72小时 环境重置时间:20分钟 官方wp链接:Docs (feishu.cn) [本次复现跟着官方WP进行,只做记录学习之用] 0x1 ...
- 把 ChatGPT 加入 Flutter 开发,会有怎样的体验?
前言 ChatGPT 最近一直都处于技术圈的讨论焦点.它除了可作为普通用户的日常 AI 助手,还可以帮助开发者加速开发进度.声网社区的一位开发者"小猿"就基于 ChatGPT 做了 ...