首页 > 其他分享 >NumPy常用方法

NumPy常用方法

时间:2024-12-26 22:42:19浏览次数:2  
标签:常用 NumPy random x2 print 数组 np x3 方法

np.array([1, 2, 3])
array([1, 2, 3])

b = np.array([1, 2, 3, 4], dtype = 'float')
[1. 2. 3. 4.]

c = np.array([range(i, i + 3) for i in [2, 4, 6]])
array([[2, 3, 4],
[4, 5, 6],
[6, 7, 8]])

用np.zeros创建一个长度为10,值都是整型0的数组

np.zeros(10, dtype = int)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

用np.ones创建一个3 X 5的浮点型数组,数组值均为1

np.ones((3, 5))
array([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]])

用np.full创建一个3 X 5的浮点型数组,数值指定都为3.14

np.full((3, 5), 3.14)
array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18])

a1 = np.random.random()
print('创建一个[0,1)之间的随机数', a1)
a2 = np.random.random(1)
print('创建一个只包含[0,1)之间一个单一元素的数组', a2)
a3 = np.random.random((3, 3))
print('创建一个[0,1)之间随机数组成的3X3的数组\n', a3)
a4 = np.random.random((2, 3, 4))
print('创建一个[0,1)之间随机数组成的2X3X4的数组\n', a4)
a5 = np.random.uniform(5, 7, (2, 2))
print('创建一个[5,7)之间随机浮点数组成的2X2的数组\n', a5)
a6 = np.random.randint(5, 7, (2, 2))
print('创建一个[5,7)之间随机整数组成的2X2的数组\n', a6)

创建一个3 X 3的均值为0,标准差为1,符合正态分布的随机数数组 np.random.normal(均值,标准差,形状)-------正态分布概率密度函数

np.random.normal(0, 1, (3, 3))

创建一个3 X 3的数组,包含标准正态分布的随机数

np.random.randn(3, 3)

x3 = np.random.randint(10, size = (3, 4, 5)) #3层4行5列

print('x3 ndim: ', x3.ndim) # 数组维度或秩
print('x3.shape:', x3.shape) # 数组形状,每个维度的大小
print('x3.size: ', x3.size) # 数组总大小 各维度大小的乘积
print('x3.dtype: ', x3.dtype) # 数组数据类型
print('x3.itemsize: ', x3.itemsize, 'bytes') # 每个数组元素字节大小
print('x3.nbytes: ', x3.nbytes, 'bytes') # 数组总字节大小 一般nbytes = intemsize * shape

多维数组切片

print('取前2行前3列x2[:2, :3]\n', x2[:2, :3])
print('取前3行前1列x2[:3, :1]\n', x2[:3, :1])
print('所有行每隔1列x2[:3, ::2]\n',x2[:3, ::2] )
print('逆序x2[::-1, ::-1]\n', x2[::-1, ::-1])

获取单行单列简洁语法

print(':表示空切片x2[:, 0]', x2[:, 0])
print('获取单行时列空切片省略x2[1]=x2[1, :]', x2[1])

数组变形 (size 必须相同)

np.arange(1, 10).reshape(3, 3)

数组的拼接

grid = np.array([[1, 2, 3],
[4, 5, 6]])
print(np.concatenate([grid, grid]))
print(np.concatenate([grid, grid], axis = 1))
np.vstack垂直栈同axis=0
np.hstack水平栈同axis=1

分裂

x = [0, 1, 2, 3, 4, 5, 6, 7, 8]
x1, x2, x3 = np.split(x, [3, 5])
[0 1 2] [3 4] [5 6 7 8]

left, right = np.split(grid, [1])//从第二行切一刀

常用通用函数

x = np.arange(4)
print('x = ', x)
print('x + 5 =', x + 5, np.add(x, 5))
print('x - 5 =', x - 5, np.subtract(x, 5))
print('x * 2 =', x * 2, np.multiply(x, 2))
print('x / 2 =', x / 2, np.divide(x, 2))
print('x // 2 =', x // 2, np.floor_divide(x, 2)) # 取商
print('x % 2 =', x % 2, np.mod(x, 2)) # 取余
print('x ** 2 =', x ** 2, np.power(x, 2))
print('-x =', -x, np.negative(x))
print('-(0.5x + 1) ** 2 = ', -(0.5x + 1) ** 2)

绝对值
np.abs(x)

聚合reduce:所有元素累积
x = np.arange(1, 6)
print('x = ', x)
print('x中所有元素求和:', np.add.reduce(x))
print('x中所有元素求积:', np.multiply.reduce(x))
print('x中所有元素依次求和并展示:', np.add.accumulate(x))
print('x中所有元素依次求积并展示:', np.multiply.accumulate(x))

外积:outer获得两个不同输入数组所有元素对的函数运算结果
x = np.arange(1, 6)
print('x = ', x)
print(np.multiply.outer(x, x))

x = [1 2 3 4 5]
[[ 1 2 3 4 5]
[ 2 4 6 8 10]
[ 3 6 9 12 15]
[ 4 8 12 16 20]
[ 5 10 15 20 25]]

标签:常用,NumPy,random,x2,print,数组,np,x3,方法
From: https://www.cnblogs.com/sanshi01/p/18634335

相关文章

  • Bash 将 Python 列表格式的字符串转为空格分隔字符串的 N 种方法
    MY_LIST='["item1","item2","item3"]'echo"Originallist:$MY_LIST"MY_LIST_CONVERTED=$(echo$MY_LIST|sed's/\[//g'|sed's/\]//g'|sed's/"//g'|sed's/,//......
  • 集智书童 | MITA-YOLO: 一种改进的间接视觉 YOLOv8方法用于目标检测,很酷!
    本文来源公众号“集智书童”,仅用于学术分享,侵权删,干货满满。原文链接:MITA-YOLO:一种改进的间接视觉YOLOv8方法用于目标检测!火势可能导致文化遗产建筑遭受严重破坏,因此及时的火警检测至关重要。传统的密集布线和钻孔可能对这些结构造成损害,因此减少摄像头的数量以最小化这......
  • 数据结构(哈希表(下)方法讲解)
    前言:在前一部分中,我们探讨了哈希表的基本原理、设计思想、优势与挑战,并了解了它在实际项目中的应用场景。哈希表作为一种高效的数据结构,在查找、插入和删除等操作上具有显著优势,但要真正掌握它的使用,深入理解其操作方法是至关重要的。本部分将专注于哈希表的方法讲解。哈希......
  • C中链表与数组的比较方法是什么?
    C中链表与数组的比较方法在C语言中,链表和数组是两种常用的数据结构,它们在数据存储和访问上各有优势。下面将详细比较这两种数据结构,并给出示例代码。1.内存分配「数组」:数组在内存中占用连续空间,所有元素按顺序排列。这种连续性使得数组的内存分配和访问非常高效。「链表」......
  • C中单链表反序的实现方法是什么?
    C中单链表反序的实现方法在C语言中,单链表的反序操作可以通过多种方法实现,主要包括迭代法和递归法。以下是详细的实现步骤和示例代码。迭代法实现单链表反序迭代法是通过遍历链表,将当前节点的指针指向前一个节点,从而实现链表的逆序。具体步骤如下:「定义节点结构体」:定义一个......
  • 多种实现数组去重的方法:适用场景和特点
    ......
  • pandas常用方法
    删:df2.dropna()df2.dropna(subset=['消费','姓名'])数据填充:df.fillna(0)填充0df.fillna({'客单价':666,'支付金额':df['支付金额'].min()})df.drop_duplicates()//去重删除所有行df.drop_duplicates(subset='流量级别')//从下往上删df.dr......
  • 常用的排序算法的时间复杂度
    以下是常见排序算法的时间复杂度对比表,包含了最优、平均和最坏情况下的时间复杂度:排序算法最优时间复杂度平均时间复杂度最坏时间复杂度空间复杂度稳定性冒泡排序O(n)O(n²)O(n²)O(1)稳定选择排序O(n²)O(n²)O(n²)O(1)不稳定插入排序O(n)O(n²)O(n²)O(1)稳定归并排序O(nl......
  • 盘点5个常用的.Net依赖注入框架!
    盘点5个常用的依赖注入框架,特别是前面2个。1、Microsoft.Extensions.DependencyInjection这是.NetCore框架本身内置集成的,我们只需引入Microsoft.Extensions.DependencyInjection,就可以直接使用。usingDependencyInjectionSample.Interfaces;usingDependencyInjectio......
  • Extjs中Ext.Array 方法的使用
    1.Ext.Array.clean(arr);过滤数组中的空元素vararr=[1,"",2,"",3];Ext.clean(arr);//[1,2,3]2.Ext.Array.clone(arr);可以克隆数组,对象,dom节点和日期数据,以避免保持旧的指向vararr=[1,,2,3];Ext.clone(arr)3.Ext.Array.contains(arr,items);检查此数组是否包含......