1.numpy数组用列表直接创建
import numpy as np age=[15,16,18] #创建列表,后面赋值列表 array3=np.array(age,dtype=np.float64) #用自带的 np.float64 比较全面 array3
array([15., 16., 18.])
2.使用np的routines函数创建
包含以下常见创建方法:
1) np.ones(shape, dtype=None, order='C') #可构造多维的数值为1的多维数组
2) np.zeros(shape, dtype=float, order='C') #可构造多维的数值为0的多维数组
3) np.full(shape, fill_value, dtype=None, order='C') #创建数值为指定数值的多维数组
4) np.eye(N, M=None, k=0, dtype=float) 对角线为1其他的位置为0 #创建单位矩阵
5) np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) #创建等差数列 规定个数 只能生成一维的
6) np.arange([start, Jstop, [step, Jdtype=None) #创建等差数列 规定步长 只能生成一维的
7) np.random.randint(low, high=None, size=None, dtype='l') #生成随机整数 可以是多维的
8)正态分布函数 #创建多维中间大两头小的橄榄数据
np.random.randn(do, d1, ..., dn) 标准正态分布
np.random.normal() 普通正态分布
9) np.random.random(size=None) #可创建多维 生成0到1的随机数,左闭右开
生成0到1的随机数,左闭右开
扩展10) np. random. permutation (X) #生成0-X的随机索引(不包括X索引)
---------------------------------------------------------------------------------------------------------------------
1) np.ones(shape, dtype=None, order='C')
#注意一维数组为 单个[] , 二维数组为2个[]
shape = (m, n)m行n列 二维数组
shape = (m) m个元素的一维数组 [1,2,3]
shape = (m,) m个元素的一维数组
shape = (m, 1) m行1列 二维数组 [[1], [2], [3]]
shape = (1, n) 1行m列 二维数组 [[1,2, 3]]
#构造一个5行3列的二维数组 np.ones(shape=(5,3),dtype=np.int8)
array([[1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1]], dtype=int8)
#构造长度为3的一维数组# # np. ones (shape=(3, )) np.ones(shape= (3))
array([1., 1., 1.])
#构造一个5行1列的二维数组 np.ones(shape= (5, 1))
array([[1.], [1.], [1.], [1.], [1.]])
#构造1行3列的二维数组 np.ones(shape= (1, 3))
array([[1., 1., 1.]])
------------------------------------------------------------------------------------
2) np.zeros(shape, dtype=float, order='C')
#创建数值为0的多维数组,几行几列几多维 import numpy as np np.zeros(shape=(2,3,4))
array([[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]],
[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]]])
------------------------------------------------------------------------------
4) np.eye(N, M=None, k=0, dtype=float) 对角线为1其他的位置为0
#创建单位矩阵 np.eye(N=5,M=4,k=-1) #5行4列,左移1
5) np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) #生成一维的
#创建等差数列 np.linspace(0,10,10) #(0-10,且共10个数)的等差数列 #因为开始不为1,所以是小数,间隔为10/9=1.11111
array([ 0. , 1.11111111, 2.22222222, 3.33333333, 4.44444444,
5.55555556, 6.66666667, 7.77777778, 8.88888889, 10. ])
#创建等差数列(不包含最后一个数) np.linspace(0,10,10,endpoint=False) #endpoint=False 去掉最后一个数
array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
----------------------------------------------------------------------------------------------------------------
6) np.arange([start, Jstop, [step, Jdtype=None) #生成一维的
#创建等差数列,规定步长(不包括最后一个数) np.arange(0,10,step=1)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
7) np.random.randint(low, high=None, size=None, dtype='l')
#生成随机整数 #size 同 shape np.random.randint(0,100,size=(5,5)) #生成5行5列0-100的随机整数
array([[ 7, 4, 36, 80, 76], [86, 3, 66, 52, 72], [85, 48, 24, 19, 10], [67, 24, 21, 12, 71], [92, 29, 36, 35, 35]])
8)正态分布函数
#创建一个标准正态分布的数据 np.random.randn(3,5)
array([[ 1.41149345, 1.08273925, -0.30380259, -0.35465171, 0.85719596], [-0.45436861, 0.88379208, -1.78201782, 2.0325225 , -0.43959887], [-0.91191596, -0.47504492, 0.62851312, 0.15178143, -0.68831409]])
#创建一个普通正态分布的数据 np.random.normal(loc=170,scale=5,size=(4,4)) #创建4行4列的 170数字差异为5之内的正态分布数据
array([[177.15008199, 170.58823699, 166.99916942, 175.6742695 ], [168.53995669, 173.96791903, 168.99829437, 162.98638972], [176.76146415, 173.44810281, 168.90365045, 166.15632439], [168.22087467, 173.28658553, 171.05024904, 164.20024835]])
9) np.random.random(size=None)
#创建10个0-1的随机数的一维数组 np.random.random(size=10)
array([0.85946945, 0.01579511, 0.43881095, 0.07421166, 0.11319703,
0.11745913, 0.7242403 , 0.02865902, 0.59481886, 0.52411829])
#创建5行5列的0-1的随机数的多维数组 np.random.random(size=(5,5))
array([[0.37223084, 0.40787061, 0.85511552, 0.37726996, 0.8551351 ], [0.65057012, 0.11895027, 0.58166118, 0.40537762, 0.94738548], [0.04710058, 0.25679987, 0.23070045, 0.51389781, 0.1386905 ], [0.45193427, 0.15550545, 0.17975954, 0.11239537, 0.03712501], [0.21398085, 0.29780659, 0.16403382, 0.73191562, 0.33294884]])
生成一组随机索引 np. random. permutation (X)
#生成0-10的随机索引(不包括10索引) np.random.permutation(10)
array([8, 4, 5, 0, 1, 3, 9, 2, 6, 7])