numpy数组对象形状和元素类型
1、前提要加载下numpy库。
首先生成两个数组:a和b;
a.shape显示结果(6,)表示a是一维数组,长度为6;
b.shape显示(2, 6)表示b是二维数组,形状为2*6;如图所示

2、改变著脂亲数组的形状(一)。
b.shape=3,4表示把b的形状转化为3*4(原来是2*6);
b.shape=3,-1表示把b的形状转化为3,x(x是自动计算的长度,这里其实就是4,与上面的等价),如图所示

3、改变数组的形状(二).
c=a.reshape(3,2)表示把a的形状改变为3*2,并且把改后的数组赋值给c;
a[-2]=88表示把a的倒数第二个元素修改为88,发现a和c的元素同时变化(a和c是共享数据存储空间,所以改了一个,另一个也会迅彩发生变化);如图

4、元素类型的查看和设置。
b.dtype可以查看b的元素类型;
a_i32=np.array([1,2,3,4,5,6],dtype=np.int32)指定了数据类型是32位整型;a_f=np.array([1,2,3,4,5,6],dtype=float)指定了数据类型是浮点型;a_c=np.array([1,2,3,4,5,6],dtype=complex)指定了数据类型是复数;
如图

5、查看完整的类型列表。
np.typeDict可以查看numpy的类型字典(展示部分),而使用set(np.typeDict.values())则是对类型字典的值的集合,如图


6、查看float64类型的所有键值(key)。
[key for key,value in np.typeDict.items() if value is np.float64]使用if判断确保只取float64的值,用for循环遍历类型字典的所有可能情况,如图

7、查看元素的数值类型和取值范围的限制。
b.dtype.type表示b的元素类型对应的数值类型是numpy.int32;
np.int32(12345678)**2和12345678**2结果不相同是因为numpy的数值类型创建对象有位数的限制,而python则无位数限制,如付眠图
