一、numpysize简介
在numpy中,numpysize是指数组的形状大小,也就是数组的维度。比如一个二维数组np.array([[1,2], [3,4]])的numpysize为(2,2),表示该数组有两行两列。
二、numpysize的获取
可以通过numpy的shape属性获取数组的numpysize信息:
import numpy as np
arr = np.array([[1,2], [3,4]])
print(arr.shape) #输出:(2,2)
也可以使用numpy的ndim属性获取数组的维度数:
import numpy as np
arr = np.array([[1,2], [3,4]])
print(arr.ndim) #输出:2
三、numpysize的修改
可以使用reshape方法修改数组的numpysize。reshape方法会返回一个新的数组,新数组的numpysize和原数组不同。比如将原数组np.array([[1,2], [3,4]])修改为一维数组:
import numpy as np
arr = np.array([[1,2], [3,4]])
new_arr = arr.reshape(4)
print(new_arr) #输出:[1 2 3 4]
print(new_arr.shape) #输出:(4,)
除了reshape方法,还可以使用resize方法在不返回新数组的情况下进行numpysize修改:
import numpy as np
arr = np.array([[1,2], [3,4]])
arr.resize(4)
print(arr) #输出:[1 2 3 4]
print(arr.shape) #输出:(4,)
四、numpysize和广播机制
在numpy中,当两个数组进行运算时,会遵循广播机制进行运算。其中,广播机制会根据两个数组的numpysize进行扩展。具体来说,首先会将两个数组进行维度扩充,直到两个数组的numpysize相同;其次,如果两个数组在某个维度的numpysize都为1,那么会对该维度进行扩展,直到两个数组在该维度的numpysize相同。
比如一个三维数组a的numpysize为(2,3,1),而一个二维数组b的numpysize为(3,1),则对a和b进行加法运算时,b会被扩展为(1,3,1),然后再扩展为(2,3,1)。示例如下:
import numpy as np
a = np.array([[[1],[2],[3]],[[4],[5],[6]]])
b = np.array([[10,20,30],[100,200,300]])
c = a + b
print(c)
'''
输出:
array([[[ 11, 21, 31],
[101, 201, 301],
[nan, nan, nan]],
[[ 14, 24, 34],
[104, 204, 304],
[nan, nan, nan]]])
'''
可以看到,b在第一维和第三维都被扩展为1,最后变成了(2,3,1),然后a和b依次相加。
五、结语
本文从numpysize的简介、获取、修改、和广播机制等几个方面对numpysize进行了详细的讲解。numpysize在numpy中起到了非常重要的作用,深入理解numpysize有助于我们更好地理解数组的操作和运算。