跳转至

数组的创建

Numpy最重要的一个特点就是它可以快速地创建一个N维数组对象,然后你可以利用ndarray这种数据结构非常高效地执行一些数学运算,并且语法风格和Python基本一致。

Numpy创建数组的常用方式 #card

  1. 从其他Python结构(例如,列表元组)转换
  2. 通过numpy原生数组的创建(例如,arange、ones、zeros等)
  3. 使用特殊库函数(例如,random) ^1658735547449

使用array方法创建数组

通过numpy原生数组创建数组

创建随机数组

numpy数组元素的类型

案例

我们知道大学生的身高都是服从某一正态分布规律的。我们假设大学生平均身高是175厘米,身高的标准差是10厘米,那我们通过Numpy可以生成10万大学生的身高样本,通过不断地采样,观察随着采样样本数的增多,其均值是如何变化的。我们用numpy.random.choice函数来模拟采样的过程。

# 设置matplotlib图片样式在jupyter notebook中显示
%matplotlib inline
# 导包
import numpy as np
import matplotlib.pyplot as plt

# 生成10万身高数据
arr_height = np.random.normal(175, 10, size=100000)

# 进行第一次采样,采样的样本赋值给sample_height,存储格式为ndarray
sample_height = np.random.choice(arr_height, size=1, replace=True)

# average 用来存储每次采样后计算的平均身高
average = []

# 进行10000轮循环采样,因为每次仅采集1个样本,所以整个过程可以视为有放回抽样
n = 10000
for round in range(n):
    sample = np.random.choice(arr_height, size=1, replace=True)
    sample_height = np.append(sample_height, sample)
    average.append(np.average(sample_height))

# 进行绘图,具体过程在后续章节详细说明
plt.figure(figsize=(8,6))
plt.plot(np.arange(n), average, alpha=0.6, color='blue')
plt.plot(np.arange(n), [175 for i in range(n)], alpha=0.6, color='red', linestyle='--')
plt.xlabel("Sample Rounds", fontsize=10)
plt.ylabel("Average Height", fontsize=10)
plt.show()

练习

  1. 创建一个ndarray,其中至少包含一个小数点后5位的数字,并将其打印出来(精度要求为小数点后1位),然后将其通过astype方法转化为int16类型并保存到某个变量中。
  2. 产生10个介于0-1之间的随机数组成总体,然后从中抽取3个元素组成样本,将这个样本打印出来。

参考资料

  1. NumPy
  2. NumPy 中文

最后更新: 2022年10月15日 01:02:48
创建日期: 2021年9月12日 05:55:32
Contributers: yangjh