Python——numpy中的tile()

格式:tile(A,reps)

功能:将A重复reps次

例如

>>> from numpy import*
>>> a = tile(5,3) #将5重复3次
>>> print(a)
[5 5 5]
>>> b = tile(5,(3,2)) #将5在行方向重复3次,列方向重复2次
>>> print(b)
[[5 5]
 [5 5]
 [5 5]]
>>> c = tile([3,2],3) #将[3,2]重复3次
>>> print(c)
[3 2 3 2 3 2]
>>> d = tile([3,2],[2,1]) #将z[3,2]在行方向重复2次,列方向重复1次
>>> print(d)
[[3 2]
 [3 2]]

要理解一个函数,可以自己多试几次,敲敲代码,会有助于理解

### Python 中数组的初始化方法 #### 使用列表推导式初始化一维数组 可以利用列表推导式来创建具有特定初始值的一维数组。例如,要创建一个包含10个零元素的一维数组: ```python list2 = [0 for _ in range(10)] # 创建含有十个0的列表[^1] ``` #### 初始化二维数组 对于多维结构如矩阵,则可以通过嵌套列表的方式实现。下面是一个例子展示如何建立一个3×4大小并全部填充为`None`的对象组成的二维表。 ```python matrix = [[None]*4 for _ in range(3)] print(matrix) # 输出: [[None, None, None, None], # [None, None, None, None], # [None, None, None, None]] ``` #### 利用NumPy库函数进行高效批量赋初值操作 当涉及到数值计算或者科学运算时,通常会采用更高效的第三方扩展包——numpy来进行向量化编程。这里列举几种常见的初始化方式: - **全置零** 或者 **单位阵** ```python import numpy as np zero_matrix = np.zeros((3, 4)) # 构建三行四列全是0.0类型的ndarray对象 identity_matrix = np.eye(N=5) # 生产五阶方阵其主对角线位置上都是整数1其余部分皆为空白即0. print(zero_matrix) print(identity_matrix) ``` - **随机分布采样** 如果希望得到一组服从某种概率统计规律的数据集作为起始状态的话,那么就可以借助于内置工具完成这项工作了。 ```python random_integers = np.random.randint(low=-999, high=999, size=(7,)) uniform_randoms = np.random.uniform(size=(8,)) normal_dist_samples = np.random.normal(loc=0., scale=1., size=(6,)) print(random_integers) print(uniform_randoms) print(normal_dist_samples) ``` - **重复模式铺展** 有时可能需要按照一定规则复制粘贴某些片段形成更大规模的整体布局,在这种情况下tile() 和repeat () 函数就派上了用场. ```python pattern = ['A', 'B'] repeated_pattern = pattern * 5 # 字符串乘法也可以作用到序列类型上面去哦! tiled_array = np.tile(A=[1, 2], reps=(3, )) flattened_repeats = np.repeat(a=np.arange(start=1, stop=4), repeats=2) print(repeated_pattern) print(tiled_array) print(flattened_repeats) ``` - **指定常量填充值full()** 最后介绍一种最直接的方法就是通过调用np.full(), 它允许用户自行设定想要赋予每一个单元格的具体数字是多少。 ```python filled_with_sevens = np.full(shape=(2, 3), fill_value=7.) string_filled_list = ["hello"]*10 print(filled_with_sevens) print(string_filled_list) ``` 综上所述,Python 提供了多种途径让用户能够灵活方便地定义不同形态特征各异的新容器实例化过程[^2][^3][^4].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值