创建数组对象:

通过NumPy库的array函数可以创建ndarray数组。通常来说,ndarray是一个通用的数据容器,即其中的所有元素都需要相同的类型。NumPy库能将数据(列表,元组,数组或者其他序列类型)转换为ndarray数组

1,使用array创建数组对象

array函数格式:

np.array(object,dtype,ndmin)

参数

说明

object

接收array,表示想要创建的数组

dtype

接收data-type,表示数组所需的数据类型,为给定时默认为None

ndamin

接收int,指定生成数组应该具有的最小维数,默认为None

创建ndarray数组:

import numpy as np
data1 = [1,3,5,7]    #列表
w1 = np.array(data)

data2 = (1,3,5,7)    #元组
w2 = np.array(data2)

data3 = [[1,2,3,4],[5,6,7,8]]
w3 = np.array(data3)

在创建数组时,NumPy会为新创建的数组推断出一个合适的数据类型,并保存在dtype中,当序列中有整数和浮点数时,NumPy会把数组的dtype定义为浮点数据类型

在array中指定dtype:

import numpy as np
w3 = np.array([1,2,3,4],dtype='float64')
print(w3.dtype)

#输出结果
#float64

2,专门创建数组的函数:

通过array函数使用已有的Python序列创建按数组效率不高,因此,NumPy提供了很多专门创建数组的函数

1)arange函数

        arange函数类似于Python的内置函数range,但是arange主要用来创建数组

import numpy as np
warray = np.arange(10)
print(warray)

Out:[0 1 2 3 4 5 6 7 8 9]

指定起始值,终值及步长参数的arange

import numpy as np
warray = np.arange(0,1,0.2)
print(warray)

Out:[0,0.2,0.4,0.6,0.8]

2)linspace函数

当arange的参数是浮点型时,由于浮点型的精度有限,通常不太可能去预测获得元素的数量,处于这个原因,通常选用更好的函数linspace,它接收元素的数量作为参数,linspace函数通过指定起始值,终值和元素个数创建一维数组,默认包括终值

import numpy as np
warray = np.linspace(0,1,5)
print(warray)

Out:[0. 0.25 0.5 0.75 1.]

3)logspace函数:

logspace和linspace函数类似,不同点是logspace创建的是等比数列

import numpy as np
warray = np.logspace(0,1,5)#生成1~10的具有5个元素的等比数列
print(warray)

Out:[ 1.          1.77827941  3.16227766  5.62341325 10.        ]

logspace的参数中,起始位和终止位代表的是10的幂(默认基数为10),第三个元素表示元素的个数

4)zeros函数:

创建指定长度或形状的全0数组

全零矩阵;

import numpy as np
warray = np.zeros(4)
print(warray)
print(np.zeros([4,4]))

Out:[0. 0. 0. 0.]

[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]

5)ones函数:

创建指定长度或形状的全1数组

import numpy as np
warray = np.ones(4)
print(warray)
print(np.ones([4,4]))

Out:[1. 1. 1. 1.]

[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]

6)dig函数

创建对角矩阵,即对角线元素为0或指定值,其他元素为0

import numpy as np

print(np.diag([1,2,3,4]))

Out:[[1 0 0 0]
 [0 2 0 0]
 [0 0 3 0]
 [0 0 0 4]]

7)eye函数:

对角线位置为1,其他位置为0

import numpy as np

print(np.eye(3))

Out:[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]

8)mat函数

import numpy as np

print(np.mat("1,2,3,4,5,6,7,8,9"))

print(np.mat("1,2,3;4,5,6;7,8,9"))#3×3的矩阵

Out:[[1 2 3 4 5 6 7 8 9]]
[[1 2 3]
 [4 5 6]
 [7 8 9]]

9)np.random.random

import numpy as np

print(np.random.random([3,3]))

print(np.random.random([3,3,2]))#第一个参数3是个数,输出3个3行两列的数组