python-numpy-常用函数详解

一、函数详解

np.empty(num_points)

用于创建一个指定大小的未初始化的数组的函数。该函数会返回一个指定大小的数组,但是数组的内容是未定义的,即数组中的元素可能是任意值。
参数说明:

  • num_points:指定数组的大小,可以是一个整数或元组
import numpy as np

# 创建一个大小为5的未初始化数组
arr = np.empty(5)

print(arr)

# 输出结果可能会是类似于以下的内容(具体数值可能不同):
[1. 2. 3. 4. 5.]

np.zeros(shape, dtype=float, order=‘C’)

NumPy中用于创建指定形状的全零数组的函数。该函数接受一个表示数组形状的元组作为参数,并返回一个对应形状且所有元素都为零的数组。
参数解释:

  • shape:表示数组形状的元组,如(2, 3)表示2行3列的数组
  • dtype:可选参数,指定数组的数据类型,默认为float
  • order:可选参数,指定数组元素在内存中的存储顺序,'C’表示按行存储,'F’表示按列存储
import numpy as np

# 创建一个3x4的全零数组
zeros_array = np.zeros((3, 4))

print(zeros_array)

输出结果:
array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.]])

np.tile(A, reps)

用于在不同维度上复制数组。具体来说,np.tile(A, reps)会将数组A沿各个维度复制指定的次数,形成一个新的数组。
参数解释:

  • A:要复制的数组
  • reps:指定每个维度上复制的次数,可以是一个整数或一个元组。如果reps是一个整数n,则表示沿着每个维度将数组复制n次;如果reps是一个元组(m, n),则表示沿着每个维度将数组复制m次沿第一个轴,n次沿第二个轴,依此类推。
import numpy as np

# 创建一个数组
arr = np.array([1, 2, 3])

# 将数组沿着第一个轴复制3次
result1 = np.tile(arr, 3)

print(result1)

# 输出结果为:
[1 2 3 1 2 3 1 2 3]

A = np.array([[1, 2], [3, 4]])
result2 = np.tile(A, (2, 3))

print(result2)

# 输出结果为:
array([[1, 2, 1, 2, 1, 2],
       [3, 4, 3, 4, 3, 4],
       [1, 2, 1, 2, 1, 2],
       [3, 4, 3, 4, 3, 4]])

np.newaxis

一种在NumPy中用于改变数组维度的常见操作
当使用np.newaxis时,它实际上是一个None对象的别名,用于增加数组的维度。通过在切片操作中使用np.newaxis,可以改变数组的维度,从而方便进行矩阵运算。

import numpy as np

# 创建一个一维数组
arr = np.array([1, 2, 3, 4])

# 使用np.newaxis增加一个新的轴
new_arr = arr[:, np.newaxis]

print(new_arr)
print(new_arr.shape)

输出结果:
array([[1],
       [2],
       [3],
       [4]])
(4, 1)

numpy.stack(arrays, axis=0)

用于沿着新的轴堆叠数组序列。具体来说,np.stack 可以将多个数组沿着指定的轴(axis)进行堆叠,生成一个新的数组。

参数说明:

  • arrays:要堆叠的数组序列,可以是多个数组组成的列表或元组。
  • axis:指定沿着哪个轴进行堆叠。默认值为 0,表示沿着新的第一个轴进行堆叠。
import numpy as np

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

stacked_array = np.stack((arr1, arr2))
print(stacked_array)

输出结果:
[[1 2 3]
 [4 5 6]]

np.roll(a, shift, axis=None)

用于对数组进行循环移位操作的函数。该函数可以将数组沿指定轴进行循环移位,即将数组的元素按照指定的偏移量进行重新排列。
参数说明:

  • a:输入数组
  • shift:循环移位的偏移量,可以是正数或负数
  • axis:指定沿着哪个轴进行循环移位操作,如果不指定则将数组展平后进行移位操作
import numpy as np

# 创建一个一维数组
arr = np.array([1, 2, 3, 4, 5])

# 对数组进行循环右移两位
result = np.roll(arr, 2)

print(result)

# 输出结果为:
[4 5 1 2 3]

二、实例

矩阵进行扩展三行,使得每一行都与第一行相同

import numpy as np

# 定义原始矩阵
matrix = np.array([[1, 2, 3]])

# 复制第一行,扩展为3行
extended_matrix = np.tile(matrix, (3, 1))

print(extended_matrix)

输出结果:
[[1 2 3]
 [1 2 3]
 [1 2 3]]

二维数组每行减去不同的数

import numpy as np

# 创建输入数组
input_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 创建要减去的数组
to_subtract = np.array([1, 2, 3])

# 使用广播功能实现减法操作
result = input_array - to_subtract[:, np.newaxis]

print(result)

输出结果为:
[[0 1 2]
 [2 3 4]
 [4 5 6]]

相关推荐

  1. python-numpy-函数详解

    2024-03-29 07:20:03       39 阅读
  2. Numpy库:函数

    2024-03-29 07:20:03       51 阅读
  3. Python中Pandas函数及案例详解

    2024-03-29 07:20:03       38 阅读
  4. numpy方法

    2024-03-29 07:20:03       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-29 07:20:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-29 07:20:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-29 07:20:03       82 阅读
  4. Python语言-面向对象

    2024-03-29 07:20:03       91 阅读

热门阅读

  1. 久菜盒子|毕业设计|金融|DCC-GARCH模型

    2024-03-29 07:20:03       42 阅读
  2. OpenCV图像滤波、边缘检测

    2024-03-29 07:20:03       37 阅读
  3. Redis缓存数据库表(列单独缓存)

    2024-03-29 07:20:03       40 阅读
  4. Spring Boot整合Redis

    2024-03-29 07:20:03       38 阅读
  5. 《青少年成长管理2024》 006 “成长需要教育”

    2024-03-29 07:20:03       43 阅读
  6. MyBatis3源码深度解析(二十七)MyBatis整合Spring框架

    2024-03-29 07:20:03       38 阅读
  7. 设计模式的主要分类

    2024-03-29 07:20:03       39 阅读
  8. QT基本数据类型

    2024-03-29 07:20:03       38 阅读