生成0和1的数组
np.zeros(shape=(3, 4), dtype="float32")
输出以下结果
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]], dtype=float32)
np.ones(shape=[2, 3], dtype=np.int32)
输出以下结果
array([[1, 1, 1],
[1, 1, 1]], dtype=int32)
从现有数组生成
拿到之前的 score 数组
array([[80, 89, 86, 67, 79],
[78, 97, 89, 67, 81],
[90, 94, 78, 67, 74],
[91, 91, 90, 67, 69],
[76, 87, 75, 67, 86],
[70, 79, 84, 67, 84],
[94, 92, 93, 67, 64],
[86, 85, 83, 67, 80]])
使用array()
api
# np.array()
data1 = np.array(score)
将data1输出
array([[80, 89, 86, 67, 79],
[78, 97, 89, 67, 81],
[90, 94, 78, 67, 74],
[91, 91, 90, 67, 69],
[76, 87, 75, 67, 86],
[70, 79, 84, 67, 84],
[94, 92, 93, 67, 64],
[86, 85, 83, 67, 80]])
还可以用asarray
api
# np.asarray()
data2 = np.asarray(score)
将data2输出
array([[80, 89, 86, 67, 79],
[78, 97, 89, 67, 81],
[90, 94, 78, 67, 74],
[91, 91, 90, 67, 69],
[76, 87, 75, 67, 86],
[70, 79, 84, 67, 84],
[94, 92, 93, 67, 64],
[86, 85, 83, 67, 80]])
同样还可以使用copy()
api
# np.copy()
data3 = np.copy(score)
将data3输出
array([[80, 89, 86, 67, 79],
[78, 97, 89, 67, 81],
[90, 94, 78, 67, 74],
[91, 91, 90, 67, 69],
[76, 87, 75, 67, 86],
[70, 79, 84, 67, 84],
[94, 92, 93, 67, 64],
[86, 85, 83, 67, 80]])
除此之外,我们还可以给数组中特定的位置重新赋值
在此之后将score重新输出
array([[ 80, 89, 86, 67, 79],
[ 78, 97, 89, 67, 81],
[ 90, 94, 78, 67, 74],
[ 91, 10000, 90, 67, 69],
[ 76, 87, 75, 67, 86],
[ 70, 79, 84, 67, 84],
[ 94, 92, 93, 67, 64],
[ 86, 85, 83, 67, 80]])
有意思的地方来了,这个时候我们分别输出data1 data2 data3,会发现只有data2的值发生了变化,这是Python中深浅拷贝不同所带来的不同
生成固定范围的数组
调用linspace
api
np.linspace(0, 10, 5)
array([ 0. , 2.5, 5. , 7.5, 10. ])
调用arange
api
np.arange(0, 21, 5)
array([ 0, 5, 10, 15, 20])
生成随机数组
使用random.uniform
api,并设置参数。生成1000000个-1到1的数的随机数组
data1 = np.random.uniform(low=-1, high=1, size=1000000)
把 data1 输出出来看看
array([-0.71158366, -0.74950877, 0.15876375, ..., 0.76520229,
0.64071715, 0.59968039])
用 matplotlib 把这个随机数组用直方图输出出来
import matplotlib.pyplot as plt
# 1、创建画布
plt.figure(figsize=(20, 8), dpi=80)
# 2、绘制直方图
plt.hist(data1, 1000)
# 3、显示图像
plt.show()
同样可以用random.normal
来生成正态分布是随机数组
# 正态分布
data2 = np.random.normal(loc=1.75, scale=0.1, size=1000000)
再使用 matplotlib 输出图像
# 1、创建画布
plt.figure(figsize=(20, 8), dpi=80)
# 2、绘制直方图
plt.hist(data2, 1000)
# 3、显示图像
plt.show()