一、ndarray对象属性
ndim 数组轴(维度)的个数,轴的个数被称作秩
shape 数组的维度, 例如一个2排3列的矩阵,它的shape属性将是(2,3),这个元组的长度显然是秩,即维度或者ndim属性
size 数组元素的总个数,等于shape属性中元组元素的乘积。
dtype一个用来描述数组中元素类型的对象,可以通过创造或指定dtype使用标准Python类型。不过NumPy提供它自己的数据类型。
itemsize 数组中每个元素的字节大小。例如,一个元素类型为float64的数组itemsiz属性值为8(=64/8),又如,一个元素类型为complex32的数组item属性为4(=32/8).
a = np.array([[1,2,3],[4,5,6]])
print("维度的数量:",a.ndim)
print("数组元素类型:",a.dtype)
print("数组的元素个数:",a.size)
print("数组的形状:",a.shape)
print("数组中每个元素的字节大小:",a.itemsize)
输出:
维度的数量: 2
数组元素类型: int32
数组的元素个数: 6
数组的形状: (2, 3)
数组中每个元素的字节大小: 4
二、numpy中的基本数据类型
下面的这两张图是所有的数据类型:
1.jpg 2.jpg
创建numpy数组的时候可以通过属性dtype
显示指定数据类型,如果不指定的情况下,numpy会自动推断出适合的数据类型,所以一般不需要显示给定数据类型。
- 指定类型创建:
a = np.array([[1,2,3],[4,5,6]],dtype=int)
- astype方法
如果需要更改一个已经存在的数组的数据类型,可以通过astype
方法进行修改从而得到一个新数组。
a = np.array([[1,2,3],[4,5,6]])
print("改变前的类型:",a.dtype)
a = a.astype(float)
print("改变后的类型:",a.dtype)
输出
改变前的类型: int32
改变后的类型: float64
三、修改ndarray的形状
对于一个已经存在的ndarray数组对象而言,可以通过修改形状相关的参数方法从而改变数组的形状。
- 直接修改数组ndarray的shape值, 要求修改后乘积不变。
- 直接使用reshape函数创建一个改变尺寸的新数组,原数组的shape保持不变,但是新数组和原数组共享一个内存空间,也就是修改任何一个数组中的值都会对另外一个产生影响,另外要求新数组的元素个数和原数组一致。
当指定某一个轴为-1的时候,表示将根据数组元素的数量自动计算该轴的长度值。
- 修改数组的shape值
#调整数组大小
a = np.array([[1,2,3],[4,5,6]])
a.shape=(3,2)
print(a)
- 使用reshape函数修改
'''
reshape 调整数组大小
'''
a = np.array([[1,2,3],[4,5,6]])
b = a.reshape(3,2)
print(b)
输出:
[[1 2]
[3 4]
[5 6]]
文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:
cplus人工智能算法后端技术
,获取优质学习资源。
网友评论