在本次的博客中,我将展示一些 Jupyter数组与向量计算的常用语法。
import numpy as np
my_arr = np.arange(10000) #生成范围为(0,9999)这10000个数字
my_list = list(range(10000))
%time for i in range(10): my_arr2 = my_arr*2
%time for i in range(10): my_list2 = [x * 2 for x in my_list]#输出代码运行的时间
data = np.random.randn(2,3)#生成2*3的随机矩阵
data*10
data+data
data.shape #输出为行数和列数
data.dtype #输出为元素的数据类型
data.ndim #输出为维度的数量
data.size #输出为元素对象的个数
data.itemsize #对象中每个元素的大小,以字节为单位
arr1 = np.array([1,2,3],dtype=np.float64)
arr2 = np.array([1,2,3],dtype=np.int32)
arr1.dtype
arr2.dtype#查看数据类型
arr = np.array([1,2,3,4,5])
arr.dtype
float_arr = arr.astype(np.float64)#显示转换为浮点型
arr = np.array([3.7,-1.2,-2.6,5.4])
arr.astype(np.int32)#直接去掉小数点后面的数
numeric_strings = np.array([‘1.25’,’-9.6’,‘42’],dtype=np.string_)#数组元素也可以是字符串
numeric_strings
numeric_strings.dtype#输出的“S4”为String类型,4个字节
numeric_strings.astype(float)
#输入2*3矩阵
data2 = [[1,2,3],[4,5,6]]
arr2 = np.array(data2)
np.zeros(10)
np.zeros((3,6))#生成3*6的零矩阵
np.empty((2,3,2))#生成一个空的三维空间(值不定,所以使用前应先赋值)
m = np.arange(5)
np.ones_like(m)#将元素都变为1
a = np.eye(3)#生成维数为3的单位阵
np.ones((3,3))#生成全一矩阵
np.ones_like(a)#生成与矩阵a维数等都相同的1矩阵
a = np.linspace(1,10,4)#(起始数值,终止数值,分四份)
b = np.linspace(1,10,4,endpoint = False)#不输出终止点
arr = np.arange(10)
arr[5]
arr[5:8] #切片
arr[5:8] = 12#将下标为5-7的元素赋值为12
arr_slice = arr[5:8].copy()#不改变原数组的值
arr2d = np.array([[1,2,3],[4,5,6],[7,8,9]])#输入一个3*3矩阵
arr2d[2]#得到索引为2的行
arr2d[0][2]#输出行索引为0列索引为2的元素
arr2d[0,2]
arr3d = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
arr3d.shape#输出三个维度的大小
arr3d#输出三维数组
arr3d[0]#得到三维数组的最外层
arr[1:3]#取第1,2个元素
arr2d[:2]#取0-1行数组
arr2d[:2,1:]#行索引为0、1,列索引为1、2的元素
arr2d[1,:2]#行索引为1,列索引为0,1的元素