import numpy as np
# 列表
arr = np.array([2,4,6,8])
arr
输出
array([2, 4, 6, 8])
# 元组
arr = np.array((2,4,6,8))
arr
输出
array([2, 4, 6, 8])
# 嵌套列表
arr = np.array([[2,4],[6,8]])
arr
输出
array([[2, 4],
[6, 8]])
np.arrange(start,stop,step)
# 默认从0开始,步长为1
np.arange(1,15,3)
输出
array([ 1, 4, 7, 10, 13])
生成0的数组
np.zeros(3)
np.zeros((3,2))
array([0., 0., 0.])
array([[0., 0.],
[0., 0.],
[0., 0.]])
生成1的数组
np.ones((3,2))
array([[1., 1.],
[1., 1.],
[1., 1.]])
生成一个正方形单位矩阵
np.eye(3)
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
0,1分布,np.random.rand()
# 生成(0,1)之间的随机数组,指定生成性状
np.random.rand()
np.random.rand(4)
# 输出
array([0.55381912, 0.9307132 , 0.94732658, 0.83996943])
指定维度
np.random.rand(2,3)
输出
Out[97]:
array([[0.74212018, 0.38686712, 0.42428739],
[0.28145782, 0.11445618, 0.30651649]])
正态分布 np.random.randn()
# 生成正态分布的数组,指定性状
np.random.randn()
np.random.randn(3)
np.random.randn(2,3)
输出
array([ 1.2152745 , 0.31357261, -0.79089988])
array([[-0.39924517, -0.12559688, -0.57329179],
[ 0.41266652, -0.34896791, 0.28467112]])
数值一般为-1,1之间
生成一定范围的随机数 np.random.randint
# 生成一定范围的随机数
np.random.randint(low,hight=None,size =None)
生成1,5之间,10个数
# 生成一定范围的随机数
np.random.randint(1,5,10)
np.random.randint(1,5,size=(2,3))
Out[102]:
array([2, 3, 1, 2, 4, 3, 1, 3, 3, 3])
array([[2, 4, 1],
[2, 1, 2]])
从一致数组中随机选取相应大小的数组 np.random.choice
# 从一致数组中随机选取相应大小的数组
np.random.choice(a,size = None,replace = None,p = None)
np.ramdom
# replace 为True,说明可以重复抽样
np.random.choice(2,2,replace = True)
array([0, 0])
# 不重复抽样
np.random.choice(2,2,replace = False)
Out[121]:
array([1, 0])
p——概率
p:1-D阵列式,可选
与a中每个条目相关的概率。
如果没有给出样品,则假定均匀分布
一个条目。
>>> np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])
array([2, 3, 0])
概率的抽样,暂时用不到。
从整数数组中抽样,np.random.randint
np.random.randint(low, high=None, size=None, dtype='l')
dtype , The default value is ‘np.int’.
np.random.randint(1, high=10, size=2, dtype='l')
Out[124]:
array([3, 7])
没有是否指定,可以进行不重复抽样
np.random.randint(1, high=3, size=2, dtype='l')
Out[131]:
array([1, 1])
数组的形状
arr = np.array([[1,2,3],[3,4,5]])
arr.shape
Out[135]:
(2, 3)
数组的大小
arr.size
Out[136]:
6
数组的类型
arr.dtype
Out[137]:
dtype('int32')
数组的维度
arr.ndim
Out[138]:
2
arr = np.arange(10)
arr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
传入位置,索引
arr[3]
arr[-1]
传入某个区间,切片
arr[1:3]
arr[1:]
arr[:3]
传入某个条件
arr[arr>3]
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
arr
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
获取某行
arr[1]
获取某些行
arr[1:3]
获取某列数据
arr[:,1]
获取某些列
arr[:,0:2]
行列同时获取
arr[0:2,1:3]
格式转换
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
arr
arr.dtype
arr2 = arr.astype(np.float64)
arr2.dtype
Out[152]:
dtype('float64')
arr3 = arr.astype(np.string_)
arr3
Out[154]:
array([[b'1', b'2', b'3'],
[b'4', b'5', b'6'],
[b'7', b'8', b'9']], dtype='|S11')
arr = np.array([1,2,np.nan,4])
arr
Out[156]:
array([ 1., 2., nan, 4.])
# 判断
np.isnan(arr)
Out[157]:
array([False, False, True, False])
# 0填充
arr[np.isnan(arr)] = 0
arr
Out[159]:
array([1., 2., 0., 4.])
arr4 = np.array([1,3,2,1])
np.unique(arr4)
Out[162]:
array([1, 2, 3])
arr = np.arange(8)
arr.reshape(2,4)
Out[163]:
array([[0, 1, 2, 3],
[4, 5, 6, 7]])
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
arr.shape
arr.reshape(1,9)
Out[168]:
array([[1, 2, 3, 4, 5, 6, 7, 8, 9]])
arr.T
import numpy as np
arr1 = np.array([[1,2,3],[4,5,6],[7,8,9]])
arr2 = np.array([[11,12,13],[14,15,16],[17,18,19]])
np.concatenate,横向拼接
np.concatenate([arr1,arr2],axis = 1)
Out[172]:
array([[ 1, 2, 3, 11, 12, 13],
[ 4, 5, 6, 14, 15, 16],
[ 7, 8, 9, 17, 18, 19]])
np.hstack
np.hstack([arr1,arr2])
Out[173]:
array([[ 1, 2, 3, 11, 12, 13],
[ 4, 5, 6, 14, 15, 16],
[ 7, 8, 9, 17, 18, 19]])
np.column_stack
np.column_stack([arr1,arr2])
Out[174]:
array([[ 1, 2, 3, 11, 12, 13],
[ 4, 5, 6, 14, 15, 16],
[ 7, 8, 9, 17, 18, 19]])
np.concatenate([arr1,arr2],axis = 0)
np.vstack([arr1,arr2])
np.row_stack([arr1,arr2])
arr = np.arange(4)
np.square(arr)
np.sqrt(arr)
import numpy as np
arr1 = np.array([[1,2,3],[4,5,6],[7,8,9]])
arr2 = np.array([[11,12,13],[14,15,16],[17,18,19]])
arr1.sum()
arr1.sum(axis = 1) # 求每一行
arr1.sum(axis = 0) # 求每一列
arr1.max(axis = 1)
arr1.max(axis = 0)
arr = np.array([56,61,65])
np.where(arr>60,"及格","不及格")
array(['不及格', '及格', '及格'], dtype='60)
Out[186]:
(array([1, 2], dtype=int64),)
# 包含
np.unique(arr1)
np.union1d(arr1,arr2) # 并集
np.setdiff1d(arr1,arr2) # 差集,在arr1,不在arr2
np.setxor1d(arr1,arr2) # 集合的对称差,不同时在arr1、arr2中