📅  最后修改于: 2020-04-18 09:15:32             🧑  作者: Mango
使用List创建数组:数组用于将多个值存储在一个变量中.Python不具有对数组的内置支持,但可以使用Python列表代替。
范例:
arr = [1, 2, 3, 4, 5]
arr1 = ["芒果", "for", "芒果"]
# Python程序创建一个数组
# 使用列表创建数组
arr=[1, 2, 3, 4, 5]
for i in arr:
print(i)
输出:
1
2
3
4
5
使用数组函数创建数组:
array(data type,value list)函数用于创建一个数组,该数组的参数中指定了数据类型和值列表。
范例:
# Python代码演示array()的工作原理
# 导入“array"以进行数组操作
import array
# 用数组值初始化数组
# 用有符号整数初始化数组
arr = array.array('i', [1, 2, 3])
# 打印原始阵列
print ("新创建的数组是 : ",end="")
for i in range (0,3):
print (arr[i], end=" ")
print ("\r")
输出:
The new created array is : 1 2 3 1 5
使用numpy方法
创建数组: NumPy提供了几个函数来创建具有初始占位符内容的数组。这些将增长数组的必要性降至最低,因为改变数组的形状是一项昂贵的操作。例如:np.zeros,np.empty等。
numpy.empty(shape,dtype = float,order =’C’):返回具有给定形状和类型且具有随机值的新数组。
# Python编程说明numpy.empty方法
import numpy as np
b = np.empty(2, dtype = int)
print("矩阵 b : \n", b)
a = np.empty([2, 2], dtype = int)
print("\n矩阵 a : \n", a)
c = np.empty([3, 3])
print("\n矩阵 c : \n", c)
输出:
矩阵 b :
[ 0 1079574528]
矩阵 a :
[[0 0]
[0 0]]
矩阵 a :
[[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]]
numpy.zeros(shape,dtype = None,order =’C’):返回一个给定形状和类型的新数组,元素值全部是零。
# Python程序说明numpy.zeros方法
import numpy as np
b = np.zeros(2, dtype = int)
print("矩阵 b : \n", b)
a = np.zeros([2, 2], dtype = int)
print("\n矩阵 a : \n", a)
c = np.zeros([3, 3])
print("\n矩阵 c : \n", c)
输出:
矩阵 b :
[0 0]
矩阵 a :
[[0 0]
[0 0]]
矩阵 c :
[[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]]
reshape数组:我们可以使用reshape
方法重塑数组。考虑一个形状为(a1,a2,a3,…,aN)的数组。我们可以重塑形状并将其转换为形状为(b1,b2,b3,…,bM)的另一个数组。
唯一需要的条件是:a1 x a2 x a3…x aN = b1 x b2 x b3…x bM。(即数组的原始大小保持不变。)
numpy.reshape(array,shape,order =’C’):在不更改数组数据的情况下对数组进行reshape。
# Python程序说明numpy.reshape()方法
import numpy as np
array = np.arange(8)
print("原始数组 : \n", array)
# 2行4列的形状数组
array = np.arange(8).reshape(2, 4)
print("\n重新排列为2行4列的数组 : \n", array)
# 2行4列的形状数组
array = np.arange(8).reshape(4 ,2)
print("\n重新排列为2行4列的数组 : \n", array)
# 构造3D数组
array = np.arange(8).reshape(2, 2, 2)
print("\n将原始阵列重塑为3D : \n", array)
输出:
原始数组 :
[0 1 2 3 4 5 6 7]
重新排列为2行4列的数组 :
[[0 1 2 3]
[4 5 6 7]]
重新排列为2行4列的数组 :
[[0 1]
[2 3]
[4 5]
[6 7]]
将原始阵列重塑为3D:
[[[0 1]
[2 3]]
[[4 5]
[6 7]]]
为了创建数字序列,NumPy提供了类似于range的函数,该函数返回数组而不是列表。
arange 给定间隔内返回均匀间隔的值。
linspace 返回给定间隔内的均匀间隔的值。
arange([start,] stop [,step,] [,dtype]):返回一个数组,该数组具有按间隔均匀分布的元素。提到的间隔是打开的一半,即[开始,停止]
# Python编程说明numpy.arange方法
import numpy as np
print("A\n", np.arange(4).reshape(2, 2), "\n")
print("A\n", np.arange(4, 10), "\n")
print("A\n", np.arange(4, 20, 3), "\n")
输出:
A
[[0 1]
[2 3]]
A
[4 5 6 7 8 9]
A
[ 4 7 10 13 16 19]
numpy.linspace(start,stop,num = 50,endpoint = True,retstep = False,dtype = None):返回间隔均匀的数字空间。
# Python编程说明numpy.linspace方法
import numpy as np
# 重新设置为True
print("B\n", np.linspace(2.0, 3.0, num=5, retstep=True), "\n")
# To evaluate sin() in long range
x = np.linspace(0, 2, 10)
print("A\n", np.sin(x))
输出:
B
(array([ 2. , 2.25, 2.5 , 2.75, 3. ]), 0.25)
A
[ 0. 0.22039774 0.42995636 0.6183698 0.77637192 0.8961922
0.9719379 0.99988386 0.9786557 0.90929743]
展平flatten数组:我们可以使用展平方法flatten将数组副本折叠成仅有一个维度的新数组。它接受顺序参数。默认值为“ C”(对于行优先)。使用“ F”表示主要顺序。
numpy.ndarray.flatten(order =’C’):返回折叠成一维的数组副本。
# Python程序说明numpy.flatten()方法
import numpy as 芒果
array = 芒果.array([[1, 2], [3, 4]])
# 使用扁平化方法
array.flatten()
print(array)
#using fatten method
array.flatten('F')
print(array)
输出:
[1、2、3、4]
[1、3、2、4]