Python-numpy基础--------2

1.full()创建函数

目录

1.full()创建函数

2.创建单位矩阵

3.linspace创建

[4.logspace 创建](#4.logspace 创建)

5.二维数组的索引和切片:

1.索引直接获取


在NumPy中,full() 函数用于创建一个给定形状、类型的新数组,并用指定的值填充这个数组。这个函数非常有用,当你需要快速初始化一个特定值填充的数组时。

函数语法:

python 复制代码
numpy.full(shape, fill_value, dtype=None, order='C')
  • shape:数组的形状,整数或整数元组的序列。
  • fill_value:填充数组的值。
  • dtype:数组的数据类型,如果未给出,则根据其他输入参数的数据类型来推断。
  • order:{'C', 'F'},是否以行优先(C-style)或列优先(Fortran-style)顺序存储多维数据。这主要影响内存布局,并且对于二维数组,'C'意味着第一维度是行,'F'意味着第一维度是列。对于一维数组,这个参数没有影响
python 复制代码
import numpy as np

# 创建一个一维数组,长度为5,所有元素都填充为7
arr_1d = np.full(5, 7)
print(arr_1d)

# 创建一个2x3的二维数组,所有元素都填充为8
arr_2d = np.full((2, 3), 8)
print(arr_2d)

# 创建一个3x4的二维数组,所有元素都填充为9.5,指定数据类型为float
arr_2d_float = np.full((3, 4), 9.5, dtype=float)
print(arr_2d_float)

# 创建一个形状为(2, 2, 2)的三维数组,所有元素都填充为True,数据类型为bool
arr_3d = np.full((2, 2, 2), True, dtype=bool)
print(arr_3d)
#输出:
# [7 7 7 7 7]
# [[8 8 8]
#  [8 8 8]]
# [[9.5 9.5 9.5 9.5]
#  [9.5 9.5 9.5 9.5]
#  [9.5 9.5 9.5 9.5]]
# [[[ True  True]
#   [ True  True]]
# 
#  [[ True  True]
#   [ True  True]]]

2.创建单位矩阵

eye和identity的使用:

python 复制代码
n1 = np.eye(3,dtype=int)
n2 = np.identity(3,dtype=int)

3.linspace创建

linspace 函数用于生成一个等差数列,即在线性间隔的点上返回均匀间隔的数字。这个函数非常适合于当你需要在一个指定的间隔内生成一系列数值时,比如在数据点的生成、图形的绘制等方面。

语法:

python 复制代码
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
  • start:序列的起始值。
  • stop:序列的结束值。如果endpoint为True,则这个值会包含在生成的数组中;如果为False,则不包含。
  • num:要生成的等间隔样本数量,默认是50。
  • endpoint:布尔值,如果为True,则stop是序列中的最后一个样本;如果为False,则生成的序列不包含stop。默认是True。
  • retstep:布尔值,如果为True,则返回(samples, step),其中step是样本之间的间隔。
  • dtype:输出数组的类型。如果不给出,则从其他输入参数推断数据类型。
  • axis:在多维样本空间中,沿其放置结果的轴。如果是0,则结果是一个一维数组;如果是整数n,则结果是一个n+1维数组。
python 复制代码
import numpy as np

# 生成从0到10(包括10)的11个等间隔点
arr = np.linspace(0, 10, 11)
print(arr)

# 生成从0到10的10个等间隔点,不包括10
arr_exclude_end = np.linspace(0, 10, 10, endpoint=False)
print(arr_exclude_end)

# 获取样本和样本之间的间隔
arr_with_step, step = np.linspace(0, 10, 4, retstep=True)
print(arr_with_step)
print("Step:", step) 
# 输出:
# [ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]
# [0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
# [ 0.          3.33333333  6.66666667 10.        ]
# Step: 3.3333333333333335

4.logspace 创建

logspace函数,用于生成在对数尺度上均匀分布的数值序列。这个函数非常适合于需要在对数轴上等间距表示数据的场景,比如频率、能量等物理量的表示

python 复制代码
numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)
  • start:序列的起始值(作为底数的幂给出)。
  • stop:序列的结束值(作为底数的幂给出)。
  • num:生成的样本数,默认为50。
  • endpoint:如果为True,则stop是最后一个样本;如果为False,则stop不包括在内。默认为True。
  • base:对数的底数,默认为10。
  • dtype:输出数组的类型。如果未给出,则从其他输入参数推断数据类型。
  • axis:在结果数组中放置样本的轴。0表示沿着第一个轴放置,1表示沿着第二个轴,依此类推。默认为0。

生成10到100之间的等间隔对数序列:

python 复制代码
import numpy as np
logspace_values = np.logspace(1, 2, num=10)
print(logspace_values)
#输出:
# [ 10.          12.91549665  16.68100537  21.5443469   27.82559402
#   35.93813664  46.41588834  59.94842503  77.42636827 100.        ]

生成2的幂次方的等间隔对数序列:

python 复制代码
logspace_values_base2 = np.logspace(1, 4, num=10, base=2)
print(logspace_values_base2)
#输出:
# [ 2.          2.5198421   3.1748021   4.          5.0396842   6.34960421
#   8.         10.0793684  12.69920842 16.        ]

注意

  • start和stop参数:这两个参数的值应该根据实际需求进行设定,以确保生成的数组范围符合要求。同时,需要注意start的值应该小于stop的值,否则生成的数组将为空。
  • 数据类型(dtype):根据数据的特性和计算需求,选择合适的数据类型可以提高计算效率和精度。
  • endpoint参数:当endpoint为False时,生成的数组不会包含stop值对应的元素。在处理这种情况时,需要特别注意数组的实际范围,以避免计算错误或逻辑错误。

5.二维数组的索引和切片:

1.索引直接获取

使用坐标获取数组[x,y]

相关推荐
SomeB1oody1 分钟前
【Rust自学】5.3. struct的方法(Method)
开发语言·后端·rust
cwj&xyp26 分钟前
Python(二)str、list、tuple、dict、set
前端·python·算法
是十一月末30 分钟前
Opencv实现图片的边界填充和阈值处理
人工智能·python·opencv·计算机视觉
Kisorge1 小时前
【C语言】指针数组、数组指针、函数指针、指针函数、函数指针数组、回调函数
c语言·开发语言
轻口味2 小时前
命名空间与模块化概述
开发语言·前端·javascript
晓纪同学3 小时前
QT-简单视觉框架代码
开发语言·qt
威桑3 小时前
Qt SizePolicy详解:minimum 与 minimumExpanding 的区别
开发语言·qt·扩张策略
飞飞-躺着更舒服3 小时前
【QT】实现电子飞行显示器(简易版)
开发语言·qt
明月看潮生3 小时前
青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程
开发语言·青少年编程·并发编程·编程与数学·goweb
明月看潮生3 小时前
青少年编程与数学 02-004 Go语言Web编程 17课题、静态文件
开发语言·青少年编程·编程与数学·goweb