-
a = np.array([1,2,3]) #创建数组
a.shape #查看大小
查看全部 -
Array(数组)
rank表示维数
查看全部 -
矩阵运算
np.dot(a,b) ===相当于 a.dot(b) a的行数等于b的列数
np.sum(a) 对数组a中元素全部求和
np.sum(a,axis=0) a中每一列元素求和
np.sum(a,axis=1) a中没一行元素求和
np.mean(a) a中所有元素平均值
np.mean(a,axis=0)
np.mean(a,asix=1) 同上
np.random.uniform(3,4) 生成3-4之间的随机小数
tile
np.tile(a,(1,2)) 将a以块的形式进行 1行2列组合
argsort 对数字当中元素进行排列后的序号 从0开始进行编号
np.argsort(axis=0) 列排序 axis=1 行排序
转置
a.T ====相当于 np.transpose(a)
查看全部 -
广播
##a = np.array() 创建一个4行3列的数组
b = np.array() 创建一个1行3列的数组
当要b加遍每一行
1、方法1 循环
for i in range(4) :
a[i,:] += b #但是python中使用循环计算会很慢
2、法2
a + np.tile(b,(4,1)) #将b以块为单位构造数组后再与a相加
3、numpy的 广播特性
直接a+b
查看全部 -
np.add(a,b) 相当于 a+b
np.subtract(a,b)相当于a-b
np.multiply(a,b) 相当于 a*b 对应位置相乘
np.divide(a,b) 相当于 a/b 对应位置相除
np.sqrt(a) 元素开方
以上仅仅是对应元素的(相同数组大小下)运算操作
矩阵运算
a.dot(b) a矩阵乘b 相当于 np.dot(a,b) a的行数等于b的列数
np.sum(a) 数组所有元素求和
np.sum(a,axis=0) 每一列求和
np.sum(a,axis=1) 每一行求和
np.mean(a) a中所有元素的平均值
同sum
np.mean(a,axis=0) 每列均值
np.mean(a,axis=1) 每行均值
np.random.uniform(3,4) 产生3-4之间的随机数
tile
np.tile(a,(1,2)) 讲数组a 进行 块状重复 一行两列 [a,a]
argsort
a. argsort() 得到数组中每行元素 从小到大排序的 序数下标
同样可以运用axis=0 或者1 来进行行列的排序
矩阵转置
a.T 对a进行转置 ==相当于 np.transpose(a)
查看全部 -
a.dtype 函数判断数组a当中是什么数据类型
a=np.array([1.1,2.6],dtype=np.int64 ) 指定a数组当中元素的数据类型为int
查看全部 -
索引数组 行与行、 列与列之间加冒号形成索引范围,
不加则为单行或者单列 行列中间用,隔开 这种情况维度会下降(可以用2:3的形式来防止维度下降)
a.[np.arange(3),1] += 10
a[[0,1,2],[1,1,1]]
a.[np.arange(3),[1,1,1]]
result_index = a>10 获得a当中元素大于十的判断结果矩阵
a[result_index] 得到大于10的元素的并集
====相当于a[a>10]
查看全部 -
import numpy as np 把numpy 简化成np
原本 a=numpy.array () 变成 a=np.array()
array()用于创建数组
reshape((n,-1)) 函数中 -1代表3
shape 获取数组的行列大小信息 先行后列
zeros 创建元素全为0的数组
ones 同理
可以用full 实现上述的函数 a = np.full ((3,3),0)
eye 用于创建单位矩阵
random.random 创建元素0-1随机数组
查看全部 -
Array (数组)
rank
In [1]:
import numpy as np
a=np.array([1,2,3])
In [2]:
a
Out[2]:
array([1, 2, 3])
In [3]:
type(a)
Out[3]:
numpy.ndarray
In [4]:
a.shape #没有表明是行向量还是列向量,只是表明有三个元素
Out[4]:
(3,)
In [5]:
a=a.reshape(1,-1) #-1代表3,即reshape函数将a设置为一行三列的数组
In [6]:
a.shape #a是一行三列的数组
Out[6]:
(1, 3)
In [7]:
a=np.array([1,2,3,4,5,6])
a.shape #显示结果为6,说明有6个元素
Out[7]:
(6,)
In [8]:
a=a.reshape((2,-1)) #将a设置为2行3列的数组
a.shape
Out[8]:
(2, 3)
In [9]:
a
Out[9]:
array([[1, 2, 3], [4, 5, 6]])
In [10]:
a=a.reshape((-1,2)) #将a转换成3行2列的数组,所以-1可以放在任何位置
a.shape
Out[10]:
(3, 2)
In [11]:
a
Out[11]:
array([[1, 2], [3, 4], [5, 6]])
In [12]:
a[2,0]=55 #将5(第3行1列,从0开始,所以是2,0)改为55
a
Out[12]:
array([[ 1, 2], [ 3, 4], [55, 6]])
zeros 元素全是0的矩阵 ones 元素全是1的矩阵
In [13]:
a=np.zeros((3,2)) #3行2列的0矩阵
b=np.ones((3,2)) #3行2列的1矩阵
print(a,'\n',b)
[[0. 0.] [0. 0.] [0. 0.]] [[1. 1.] [1. 1.] [1. 1.]]
full函数
In [14]:
a=np.full((2,2),0) #2行2列的元素为0的矩阵
b=np.full((2,1),1) #2行1列的元素为1的矩阵
c=np.full((3,4),3) #3行4列的元素为3的矩阵
print('a=',a,'\n','b=',b,'\n','c=',c)
a= [[0 0] [0 0]] b= [[1] [1]] c= [[3 3 3 3] [3 3 3 3] [3 3 3 3]]
eye函数 创建单位矩阵
In [15]:
a=np.eye(3)
a
Out[15]:
array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]])
random.random 随机创建一个n*m个元素为0~1的矩阵
In [16]:
a=np.random.random((3,4))
a
Out[16]:
array([[0.41649546, 0.78422125, 0.40328815, 0.89947211], [0.37932431, 0.34892845, 0.04160069, 0.77451545], [0.14348274, 0.84981272, 0.67884397, 0.52761756]])
indexing 数组索引
In [17]:
a=np.array([[1,2,3,4], #第0行or倒数第-3行
[5,6,7,8], #第1行or倒数第-2行
[9,10,11,12]]) #第2行or倒数第-1行
a[-3:,1:3]
Out[17]:
array([[ 2, 3], [ 6, 7], [10, 11]])
In [18]:
a[1,-2] #取第2行倒数第二个数
Out[18]:
7
arange
In [19]:
a[np.arange(2),1]+=10 #在前2行的第1列的两个元素加10
a
Out[19]:
array([[ 1, 12, 3, 4], [ 5, 16, 7, 8], [ 9, 10, 11, 12]])
In [20]:
np.arange(3,7) #3~6产生指定范围的数组
Out[20]:
array([3, 4, 5, 6])
In [21]:
result_index=a>10 #a中的元素大于10的为True,其余为False
result_index
Out[21]:
array([[False, True, False, False], [False, True, False, False], [False, False, True, True]])
In [22]:
a[a>10] #显示出a中大于10的元素
Out[22]:
array([12, 16, 11, 12])
元素的数据类型
In [23]:
a=np.array([1,2])
a.dtype
Out[23]:
dtype('int32')
In [24]:
a=np.array([1.2,3]) #当有整数和小数时,默认都为小数
a.dtype
Out[24]:
dtype('float64')
In [25]:
a=np.array([1.1,2.6],dtype=np.int64) #将小数转换成整数类型
a
Out[25]:
array([1, 2], dtype=int64)
数学运算与常用函数
加
In [26]:
a=np.array([[1,2],
[3,4]])
b=np.array([[5,6],
[7,8]])
a+b
Out[26]:
array([[ 6, 8], [10, 12]])
In [27]:
np.add(a,b)
Out[27]:
array([[ 6, 8], [10, 12]])
减
In [28]:
np.subtract(a,b) #或写为a-b
Out[28]:
array([[-4, -4], [-4, -4]])
乘
In [29]:
np.multiply(a,b) #或写为a*b
Out[29]:
array([[ 5, 12], [21, 32]])
除
In [30]:
np.divide(a,b) #或写为a/b
Out[30]:
array([[0.2 , 0.33333333], [0.42857143, 0.5 ]])
开方
In [31]:
np.sqrt(a)
Out[31]:
array([[1. , 1.41421356], [1.73205081, 2. ]])
In [32]:
a=np.array([[1,2],[3,4]])
b=np.array([[1,2,3],[4,5,6]])
a.dot(b) #a*b,或写为np.dot(a,b)
Out[32]:
array([[ 9, 12, 15], [19, 26, 33]])
常用函数
In [33]:
a
Out[33]:
array([[1, 2], [3, 4]])
In [34]:
np.sum(a) #对a内的元素求和
Out[34]:
10
In [35]:
np.sum(a,axis=0) #axis为0时对列操作,每一列的元素相加
Out[35]:
array([4, 6])
In [36]:
np.sum(a,axis=1) #axis为1时对行操作,每一行的元素相加
Out[36]:
array([3, 7])
mean函数:求平均值
In [37]:
np.mean(a) #a中所有元素和的平均值
Out[37]:
2.5
In [38]:
np.mean(a,axis=0) #a中每列和的平均值
Out[38]:
array([2., 3.])
uniform函数:在制定区间随机产生一个小数
In [39]:
np.random.uniform(3,4)
Out[39]:
3.3895012763982115
tile函数:重复指定的次数
In [40]:
a
Out[40]:
array([[1, 2], [3, 4]])
In [41]:
np.tile(a,(1,3)) #行不重复,列元素重复三次
Out[41]:
array([[1, 2, 1, 2, 1, 2], [3, 4, 3, 4, 3, 4]])
argsort函数:对每行元素排序
In [42]:
a=np.array([[3,6,4,11],[5,11,2,3]]) #从小到大排序,从0开始
a.argsort()
Out[42]:
array([[0, 2, 1, 3], [2, 3, 0, 1]], dtype=int64)
In [43]:
a.argsort(axis=0) #对每列元素从小到大排序,从0开始
Out[43]:
array([[0, 0, 1, 1], [1, 1, 0, 0]], dtype=int64)
矩阵转置
In [44]:
a
Out[44]:
array([[ 3, 6, 4, 11], [ 5, 11, 2, 3]])
In [45]:
a.T #或者 np.transpose(a)
Out[45]:
array([[ 3, 5], [ 6, 11], [ 4, 2], [11, 3]])
广播
In [46]:
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
b=np.array([2,3,4])
for i in range(3):
a[i,:] += b #让a的每一行加b
a
Out[46]:
array([[ 3, 5, 7], [ 6, 8, 10], [ 9, 11, 13]])
In [47]:
#如果a是一个很大的数组,python需要经过大量的循环,耗时多,
#所以可以用tile函数,使b重复
a + np.tile(b,(3,1)) #因为a是3行,所以b重复3次行
Out[47]:
array([[ 5, 8, 11], [ 8, 11, 14], [11, 14, 17]])
In [48]:
a+b #numpy有广播的功能,将两个数组转化为相同的维度 进行运算
Out[48]:
array([[ 5, 8, 11], [ 8, 11, 14], [11, 14, 17]])
查看全部 -
2查看全部
-
shape
reshape
ones
full
eye
random.random
查看全部 -
result_index = a>10,对数组a中的所有数据进行判断,返回True和False
a[result_index],返回的值就是所有满足条件的值
查看全部 -
a[np.arange(3),1] += 10,地[1]列的没个数都+10
查看全部 -
a = np.eye(3),用于创建单位矩阵
查看全部 -
reshape
full
eye
random.random
查看全部
举报