numpy中tile(A, reps)的问题"/>
[问题解决] numpy中tile(A, reps)的问题
为什么80%的码农都做不了架构师?>>>
在NumPy中,数组这一类又被称为ndarray。
1、ndarray.ndim
指数组的维度,即数组轴(axes)的个数,其数量等于秩(rank)。通俗地讲,我们平时印象中的数组就是一维数组,维度为1、轴的个数为1、秩也等于1;最常见的矩阵就是二维数组,维度为2、轴的个数为2(可以理解为由x轴、y轴组成)、秩等于2;我们所知的空间就相当于三维数组,维度为3、轴的个数为3(x、y、z轴)、秩等于3;以此类推。
2、ndarray.shape
按教程的话翻译过来是数组的维度,这样就很容易和ndim的概念混淆。所以可以这样理解,shape的返回值是一个元组,元组的长度就是数组的维数,即ndim。而元组中每个整数分别代表数组在其相应维度(/轴)上的大小。以最常见的矩阵为例,print shape后返回(2,3),说明这是一个2行3列的矩阵。
下面说一下tile函数,其原型如下。
原型:numpy.tile(A,reps)
tile共有2个参数,A指待输入数组,reps则决定A重复的次数。整个函数用于重复数组A来构建新的数组。
假设reps的维度为d,那么新数组的维度为max(A.ndim,d)。下面分三种情况进行讨论:
from numpy import *
a = array([[1, 2, 3],[4, 5, 6],[2, 4, 6]
])print(a.shape)
print(a.ndim)
# 新数组的维度max(A.ndim,reps的维度)'''A.ndim > reps的维度reps扩充至A的维度,变成(1,2),行重复2次
'''
b = tile(a, 2)
print(b)
print(b.ndim)'''A.ndim = reps的维度相应维度扩充,行内重复3次,列2次
'''
c = tile(a, (2, 3))
print(c)
print(c.ndim)'''A.ndim < reps的维度A维度扩充至reps维度,行内重复4次,列重复3次,此基础上整体重复2次
'''
d = tile(a, (2, 3, 4))
print(d)
print(d.ndim)
"E:\Python 3.6.2\python.exe" F:/PycharmProjects/testnum.py
(3, 3)
2
[[1 2 3 1 2 3][4 5 6 4 5 6][2 4 6 2 4 6]]
2
[[1 2 3 1 2 3 1 2 3][4 5 6 4 5 6 4 5 6][2 4 6 2 4 6 2 4 6][1 2 3 1 2 3 1 2 3][4 5 6 4 5 6 4 5 6][2 4 6 2 4 6 2 4 6]]
2
[[[1 2 3 1 2 3 1 2 3 1 2 3][4 5 6 4 5 6 4 5 6 4 5 6][2 4 6 2 4 6 2 4 6 2 4 6][1 2 3 1 2 3 1 2 3 1 2 3][4 5 6 4 5 6 4 5 6 4 5 6][2 4 6 2 4 6 2 4 6 2 4 6][1 2 3 1 2 3 1 2 3 1 2 3][4 5 6 4 5 6 4 5 6 4 5 6][2 4 6 2 4 6 2 4 6 2 4 6]][[1 2 3 1 2 3 1 2 3 1 2 3][4 5 6 4 5 6 4 5 6 4 5 6][2 4 6 2 4 6 2 4 6 2 4 6][1 2 3 1 2 3 1 2 3 1 2 3][4 5 6 4 5 6 4 5 6 4 5 6][2 4 6 2 4 6 2 4 6 2 4 6][1 2 3 1 2 3 1 2 3 1 2 3][4 5 6 4 5 6 4 5 6 4 5 6][2 4 6 2 4 6 2 4 6 2 4 6]]]
3Process finished with exit code 0
转载于:
更多推荐
[问题解决] numpy中tile(A, reps)的问题
发布评论