c=[[1 2 3 4]
[5 6 7 8]]
# 数组c是一个二维数组,秩为2,可以看成是两个一维数组
ndarray,也称为多维数组(n-dimensional array),与列表和元组不同,ndarray中所有数据类型须相同
特点:
array([x,y,x],dtype = int) #从列表和元组创建数组
(最常用的一种方法)
import numpy as np
# 创建简单的列表a,b
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
# 将列表a转换为一维数组并输出
print(np.array(a)) # 输出 [1 2 3 4]
#等长的多个列表可以转为一个多维数组
c = [a,b]
print(np.array(c)) # 输出 [[1 2 3 4] [5 6 7 8]]
import numpy as np
a = [1, 2, 3, 'hello']
b = [5, 6, 7, 8]
print(np.array(a)) # 输出 ['1' '2' '3' 'hello']
c = [a,b]
print(np.array(c)) # 输出 [[ '1' '2' '3' 'hello'] [ '5' '6' '7' '8']]
# array().reshape(m,n)
# 数组重建为m行n列的二维数组
import numpy as np
s = np.array(range(12))
print(s) # [ 0 1 2 3 4 5 6 7 8 9 10 11]
print(s.reshape(3,4))
# [[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
import numpy as np
print(np.arange(1,12,2)) # 从1 到12,步长为2
# [ 1 3 5 7 9 11]
print(np.arange(12)) # 从0到12,步长为1
# [ 0 1 2 3 4 5 6 7 8 9 10 11]
import numpy as np
print(np.linspace(1, 10, 10)) # 10个元素,9个间隔
# [ 1. 2. 3. 4. 5. 6. 7. 8. 9.10.]
import numpy as np
#创建全1数组
print(np.ones((2,3)))
# [[1. 1. 1.]
# [1. 1. 1.]]
import numpy as np
#创建全0数组
print(np.zeros((2,3)))
# [[0. 0. 0.]
# [0. 0. 0.]]
import numpy as np
#创建随机数组
print(np.random.rand(2,3))
# [[0.92214213 0.12781211 0.80536043]
# [0.29193973 0.24154696 0.48081903]]
import numpy as np
arr = np.arange(36)
print(arr)
# [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35]
# reshape(6,6)将创建的数组转成6行6列
arr = arr.reshape(6,6)
print(arr) # 返回数组所有元素
[[0 1 2 3 4 5]
[6 7 8 9 10 11]
[12 13 14 15 16 17]
[18 19 20 21 22 23]
[24 25 26 27 28 29]
[30 31 32 33 34 35]]
genfromtxt()函数提供了从文本文件中获取数据的方法,并提供缺失值处理等更复杂的操作。该函数可以跳过开头指定的行和注释行,根据指定的字符对每一行进行切分
numpy.genfromtxt(fname, dtype=<class 'float'>, delimiter=None, skip_header=0, skip_footer=0, filling_values = 0, encoding='utf-8')
# fname:文件名称
# dtype:生成数组的数据类型,默认为float
# delimiter:值为字符串、整数或序列。delimiter参数用于定义如何拆分数据行
# skip_header: 值为整数。参数的值对应于在执行任何其他操作之前在文件开头跳过的行数,缺省值为 skip_header=0,表示不略过任何行
# skip_footer:跳过文件的最后n行
# filling_values = 0:可以在输出时遇到缺失数据用数字“0”填充
import numpy as np
# str数据以字符串形式输出,delimiter指明分隔符为逗号,encoding指明编码类型
data = np.genfromtxt('scoretest.txt', dtype=str, delimiter=',’, encoding='utf-8’)
print(data)
loadtxt()主要参数的含义和用法与genfromtxt()函数的参数类似,这里不做过多说明。
import numpy as np
# str数据以字符串形式输出,delimiter指明分隔符为逗号,encoding指明编码类型
data = np.loadtxt('scoretest.txt', str, delimiter=',’, encoding='utf-8’)
print(data)
numpy也提供了savetxt()方法用于保存数组到文本文件,其语法和参数如下,其中大数据分参数的意义与genfromtxt()函数相似,此处不再赘述。
numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='', footer='', comments='# ', encoding=None)
参数中encoding 的值为“None”或字符串,用于指定编码输出文件的编码类型,当输出为字节流时此参数不可用。