numpy-基础:数组与向量计算(一)

在本次的博客中,我将展示一些 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]#输出代码运行的时间

ndarray对象属性

data = np.random.randn(2,3)#生成2*3的随机矩阵

data*10
data+data

data.shape #输出为行数和列数
data.dtype #输出为元素的数据类型
data.ndim #输出为维度的数量
data.size #输出为元素对象的个数
data.itemsize #对象中每个元素的大小,以字节为单位

ndarray的元素类型

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的元素

你可能感兴趣的:(Jupyter)