np.array([1, 2, 3])
array([1, 2, 3])
b = np.array([1, 2, 3, 4], dtype = 'float')
[1. 2. 3. 4.]
c = np.array([range(i, i + 3) for i in [2, 4, 6]])
array([[2, 3, 4],
[4, 5, 6],
[6, 7, 8]])
用np.zeros创建一个长度为10,值都是整型0的数组
np.zeros(10, dtype = int)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
用np.ones创建一个3 X 5的浮点型数组,数组值均为1
np.ones((3, 5))
array([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]])
用np.full创建一个3 X 5的浮点型数组,数值指定都为3.14
np.full((3, 5), 3.14)
array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
a1 = np.random.random()
print('创建一个[0,1)之间的随机数', a1)
a2 = np.random.random(1)
print('创建一个只包含[0,1)之间一个单一元素的数组', a2)
a3 = np.random.random((3, 3))
print('创建一个[0,1)之间随机数组成的3X3的数组\n', a3)
a4 = np.random.random((2, 3, 4))
print('创建一个[0,1)之间随机数组成的2X3X4的数组\n', a4)
a5 = np.random.uniform(5, 7, (2, 2))
print('创建一个[5,7)之间随机浮点数组成的2X2的数组\n', a5)
a6 = np.random.randint(5, 7, (2, 2))
print('创建一个[5,7)之间随机整数组成的2X2的数组\n', a6)
创建一个3 X 3的均值为0,标准差为1,符合正态分布的随机数数组 np.random.normal(均值,标准差,形状)-------正态分布概率密度函数
np.random.normal(0, 1, (3, 3))
创建一个3 X 3的数组,包含标准正态分布的随机数
np.random.randn(3, 3)
x3 = np.random.randint(10, size = (3, 4, 5)) #3层4行5列
print('x3 ndim: ', x3.ndim) # 数组维度或秩
print('x3.shape:', x3.shape) # 数组形状,每个维度的大小
print('x3.size: ', x3.size) # 数组总大小 各维度大小的乘积
print('x3.dtype: ', x3.dtype) # 数组数据类型
print('x3.itemsize: ', x3.itemsize, 'bytes') # 每个数组元素字节大小
print('x3.nbytes: ', x3.nbytes, 'bytes') # 数组总字节大小 一般nbytes = intemsize * shape
多维数组切片
print('取前2行前3列x2[:2, :3]\n', x2[:2, :3])
print('取前3行前1列x2[:3, :1]\n', x2[:3, :1])
print('所有行每隔1列x2[:3, ::2]\n',x2[:3, ::2] )
print('逆序x2[::-1, ::-1]\n', x2[::-1, ::-1])
获取单行单列简洁语法
print(':表示空切片x2[:, 0]', x2[:, 0])
print('获取单行时列空切片省略x2[1]=x2[1, :]', x2[1])
数组变形 (size 必须相同)
np.arange(1, 10).reshape(3, 3)
数组的拼接
grid = np.array([[1, 2, 3],
[4, 5, 6]])
print(np.concatenate([grid, grid]))
print(np.concatenate([grid, grid], axis = 1))
np.vstack垂直栈同axis=0
np.hstack水平栈同axis=1
分裂
x = [0, 1, 2, 3, 4, 5, 6, 7, 8]
x1, x2, x3 = np.split(x, [3, 5])
[0 1 2] [3 4] [5 6 7 8]
left, right = np.split(grid, [1])//从第二行切一刀
常用通用函数
x = np.arange(4)
print('x = ', x)
print('x + 5 =', x + 5, np.add(x, 5))
print('x - 5 =', x - 5, np.subtract(x, 5))
print('x * 2 =', x * 2, np.multiply(x, 2))
print('x / 2 =', x / 2, np.divide(x, 2))
print('x // 2 =', x // 2, np.floor_divide(x, 2)) # 取商
print('x % 2 =', x % 2, np.mod(x, 2)) # 取余
print('x ** 2 =', x ** 2, np.power(x, 2))
print('-x =', -x, np.negative(x))
print('-(0.5x + 1) ** 2 = ', -(0.5x + 1) ** 2)
绝对值
np.abs(x)
聚合reduce:所有元素累积
x = np.arange(1, 6)
print('x = ', x)
print('x中所有元素求和:', np.add.reduce(x))
print('x中所有元素求积:', np.multiply.reduce(x))
print('x中所有元素依次求和并展示:', np.add.accumulate(x))
print('x中所有元素依次求积并展示:', np.multiply.accumulate(x))
外积:outer获得两个不同输入数组所有元素对的函数运算结果
x = np.arange(1, 6)
print('x = ', x)
print(np.multiply.outer(x, x))
x = [1 2 3 4 5]
[[ 1 2 3 4 5]
[ 2 4 6 8 10]
[ 3 6 9 12 15]
[ 4 8 12 16 20]
[ 5 10 15 20 25]]