Datawhale 第十九期 Numpy下 之 Task01:输入输出
一、Numpy简介
Numpy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。
NumPy的数组类被称作ndarray。通常被称作数组。注意numpy.array和标准Python库类array.array并不相同,后者只处理一维数组和提供少量功能。更多重要ndarray对象属性有:
1)ndarray.ndim:数组轴的个数,在python的世界中,轴的个数被称作秩。
2)ndarray.shape:数组的维度。这是一个指示数组在每个维度上大小的整数元组。例如一个n排m列的矩阵,它的shape属性将是(2,3),这个元组的长度显然是秩,即维度或者ndim属性。
3)ndarray.size:数组元素的总个数,等于shape属性中元组元素的乘积。
4)ndarray.dtype:一个用来描述数组中元素类型的对象,可以通过创造或指定dtype使用标准Python类型。另外NumPy提供它自己的数据类型。
5)ndarray.itemsize:数组中每个元素的字节大小。例如,一个元素类型为float64的数组itemsiz属性值为8(=64/8),又如,一个元素类型为complex32的数组item属性为4(=32/8).
6)ndarray.data:包含实际数组元素的缓冲区,通常我们不需要使用这个属性,因为我们总是通过索引来使用数组中的元素。
相关代码如下:
c=np.arange(15).reshape(3,5)
print('c=',c)
print('c.shape=',c.shape)
print('c.ndim=',c.ndim)
print('c.dtype.name=',c.dtype.name)
print('c.itemsize',c.itemsize)
print('c.size=',c.size)
print('type(c)=',type(c))
二、输入输出
当你打印一个数组,NumPy以类似嵌套列表的形式显示它,但是呈以下布局:最后的轴从左到右打印,次后的轴从顶向下打印,剩下的轴从顶向下打印,每个切片通过一个空行与下一个隔开。一维数组被打印成行,二维数组成矩阵,三维数组成矩阵列表。
d=np.arange(10)
print('d=',d)#一维数组
e=np.arange(16).reshape(4,4)
print('e=',e)#二维数组
f=np.arange(36).reshape(3,3,4)
print('f=',f)#三维数组
2.1 如何在numpy数组中只打印小数点后三位?
import numpy as np
rand_arr = np.random.random([5, 3])
print('rand_arr=',rand_arr)
#rand_arr= [[0.515034 0.584319 0.565256]
#[0.360748 0.55013 0.089916]
# [0.443732 0.84107 0.030382]
#[0.138895 0.483901 0.544292]
#[0.819551 0.928097 0.48968 ]]
np.set_printoptions(precision=3)
print('rand_arr=',rand_arr)
#rand_arr= [[0.515 0.584 0.565]
# [0.361 0.55 0.09 ]
#[0.444 0.841 0.03 ]
#[0.139 0.484 0.544]
# [0.82 0.928 0.49 ]]
2.2 如何限制numpy数组输出中打印的项目数?
import numpy as np
k = np.arange(20)
print('k=',k)
# k= [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
np.set_printoptions(threshold=5)
print('k=',k)
# k= [ 0 1 2 ... 17 18 19]
2.3 如何打印完整的numpy数组而不中断?
import numpy as np
h = np.arange(20)
np.set_printoptions(threshold=6)
print('h=',h)
# h=[ 0 1 2 ... 12 13 14]
np.set_printoptions(threshold=np.iinfo(np.int).max)
print('h=',h)
# h= [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]