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.排序操作指令 一.项 ...
 
随机推荐
- Typora 基本功能
			
Typora 基本功能 typora 下载官网:https://www.typora.io/ "安装到C盘" 基本使用 1.该文件后缀 .md2.六级标题 :ctrl+ ...
 - InnoDB和MyISAM的区别(超详细)
			
1.事务 InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务: ...
 - Python自学day03
			
1.数据类型 int 1,2,3用于计算 bool True,False用于判断 str 存储少量数据,用于操作 list 存储大量数据 [1,2,3,'a ...
 - 【原创】解决Multiple dex files define问题的思路
			
Multiple dex files define Landroid/support/v4/media/MediaMetadataCompat$Builder; 工作中我们可能会遇到各种 muxtip ...
 - 6.Vue路由
			
一.路由的基本概念与原理 路由是一个广义与抽象的概念,路由的本质就是对应关系 在开发中,路由分为: (1) 后端路由 (2) 前端路由 1.1 路由 1. 后端路由(根据不同的URL地址分发不同的资源 ...
 - 中国移动光猫(吉比特h2-3S)超级用户名与密码
			
超级用户名 CMCCAdmin 密码 aDm8H%MdA
 - ABPvNext修改密码强度
			
ABPvNext 5.0之后,一些原有的修改密码强度的办法已经被抛弃无法正确使用.目前亲测有效的办法只有通过配置管理修改密码强度. 这里配置文件设置配置的方式,更多方法,可参见官方文档中的Settin ...
 - ASP.NET实现前台调用后台变量或者方法
			
前台页面 <div> <%= Name %> </div> <div> <%= getName() %> </div> 后台代码 ...
 - [扫描工具]dirsearch简单使用
			
[扫描工具]dirsearch简单使用 dirsearch是一个python开发的目录扫描工具.和我们平时使用的dirb.御剑之类的工具一样,就是为了扫描网站的敏感文件和目录从而找到突破口. 安装: ...
 - Spring全家桶
			
常用框架的知识点汇总,如图: 一.5个常用的spring框架 ▌1.spring framework 也就是我们经常说的spring框架,包括了ioc依赖注入,Context上下文.bean管理.sp ...