Numpy 基础

1. 通过array函数创建多维数组

  • 创建一维数组
a = np.array([1,2,3,4])
print(a)

[1 2 3 4]

  • 创建二维数组
b = np.array([[1,2,3],[4,5,6],[3,2,1]])
print(b)

[[1 2 3]
[4 5 6]
[3 2 1]]

2. 数组对象常用的属性(维度、形状、元素个数、元素字节数)

以下面的二维数组为例:

b = np.array([[1,2,3],[4,5,6],[3,2,1]])
print(b)

[[1 2 3]
[4 5 6]
[3 2 1]]

  • 通过ndim属性,查看数组的维度
dim = b.ndim
print("b数组的维度是:", dim)

b数组的维度是: 2

  • 通过shape属性,查看数组的形状
shape = b.shape
print("b数组的形状是:", shape)

b数组的形状是: (3, 3)

  • 通过size属性,查看数组的元素个数
size = b.size
print("b数组的元素个数是:", size)

b数组的元素个数是:9

  • 通过dtype属性,查看数组的元素字节数
dtype = b.dtype
print("b数组的元素字节数是:", dtype)

3. 创建特殊数组

  • 通过np.arange(start, end, step)创建一个范围数组
c = np.arange(1, 10, 2)
print(c)

array([1, 3, 5, 7, 9])

  • 通过np.ones((shape))创建一个元素全是1的数组
d = np.ones((3,4))

array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])

  • 通过np.zeros((shape))创建一个元素全是0的数组
d = np.zeros((4,5))

array([[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]])

  • 通过np.eye()创建一个对角线为1,其余为0的数组
f = np.eye(3)

array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])

4. 通过reshape和resize改变已经创建的数组形状

reshape会创建一个新的数组;resize则是直接在原数组上修改。

以下面的这个一维数组为例:

arr = np.arange(0, 20, 2)
print(arr)

[ 0 2 4 6 8 10 12 14 16 18]

  • 通过reshape修改,在实际使用过程中需要结合赋值语句,将修改后的数组保存。
newarr = arr.reshape(2,5)
print(newarr)

array([[ 0, 2, 4, 6, 8],
[10, 12, 14, 16, 18]])

  • 通过resize修改,直接在原数组上修改,不需要结合赋值语句。
arr.resize(2,5)
print(arr)

array([[ 0, 2, 4, 6, 8],
[10, 12, 14, 16, 18]])

5. Numpy的随机模块——numpy.random

np.random.rand(d0,d1,…,dn) 元素在[0,1)区间均匀分布的数组 浮点数

np.random.uniform(low, hige, size) 元素在[low, hige)区间均匀分布的数组 浮点数

np.random.randint(low, hige, size) 元素在[low, hige)区间均匀分布的数组 整数

np.random.randn(d0,d1,…,dn) 产生标准正泰分布的数组 浮点数

np.random,normal(loc, scale, size) 产生正态分布的数组 浮点数

np.random.seed(shuzi) 设置随机种子,仅一次有效

np.random.shuffle(序列) 打乱顺序函数(可以是列表或numpy数组)。如果是np,只打乱第一维。所以,如果是minist这样的数据集,可以将图片顺序打乱,而不会改变每张图片数据。

  • 例如创建一个数值在1至255之间的整数,28x28的二维矩阵
arr = np.random.randint(1,256, (28,28))

通过matplotlib显示这个矩阵图像:

import matplotlib.pyplot as plt
plt.imshow(arr)
plt.show()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值