ndarray的创建
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
复制代码
多于一维的
# 多于一个维度
import numpy as np
a = np.array([[1, 2], [3, 4]])
print(a)
复制代码
输出:
[[1, 2]
[3, 4]]
复制代码
dtype参数的
# dtype 参数
import numpy as np
a = np.array([1, 2, 3], dtype = complex)
print(a)
复制代码
输出:
[ 1.+0.j, 2.+0.j, 3.+0.j]
复制代码
numpy.empty
它创建指定形状和dtype的未初始化数组。(类型默认float)
x = np.empty([3,2])
复制代码
注意:数组元素为随机值,因为它们未初始化。
numpy.ones
返回特定大小,以 1 填充的新数组。
# 创建10行10列的数值为浮点1的矩阵,默认类型为 float
array_one = np.ones([10, 10])
复制代码
numpy.zeros
返回特定大小,以 0 填充的新数组。
# 创建10行10列的数值为浮点0的矩阵,默认类型为 float
array_zero = np.zeros([10, 10])
复制代码
附 NumPy 中定义的不同标量数据类型:
NumPy - 数组属性
ndarray.shape
这一数组属性返回一个包含数组维度的元组,它也可以用于调整数组大小。
例一
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print(a.shape)
复制代码
输出:
(2, 3)
复制代码
例二
# 这会调整数组大小
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a.shape = (3,2)
print(a)
复制代码
输出:
[[1, 2]
[3, 4]
[5, 6]]
复制代码
例三
NumPy 也提供了reshape函数来调整数组大小。
import numpy as np
a = np.array([[1,2,3],[4,5,6]]).reshape(3,2)
print(a)
复制代码
输出:
[[1, 2]
[3, 4]
[5, 6]]
复制代码
查看数组的属性
NumPy - 来自数值范围的数组
numpy.arange
这个函数返回ndarray对象,包含给定范围内的等间隔值。
x = np.arange(10,20,2) #起始,终止,步长
NumPy - 切片和索引
ndarray对象的内容可以通过索引或切片来访问和修改。有三种可用的索引方法类型: 字段访问,基本切片和高级索引。
基本切片是 Python 中基本切片概念到 n 维的扩展。 通过将start,stop和step参数提供给内置的slice函数来构造一个 Python slice对象。 此slice对象被传递给数组来提取数组的一部分。
import numpy as np
a = np.arange(10)
s = slice(2,7,2)
print(a[s])
#或者
import numpy as np
a = np.arange(10)
b = a[2:7:2]
#print(b)
复制代码
都输出
[2 4 6]
复制代码
NumPy - 高级索引
有两种类型的高级索引:整数和布尔值。
整数索引
这种机制有助于基于 N 维索引来获取数组中任意元素。 每个整数数组表示该维度的下标值。 当索引的元素个数就是目标ndarray的维度时,会变得相当直接。
以下示例获取了ndarray对象中每一行指定列的一个元素。 因此,行索引包含所有行号,列索引指定要选择的元素。
布尔索引
当结果对象是布尔运算(例如比较运算符)的结果时,将使用此类型的高级索引。
广播
广播是指 NumPy 在算术运算期间处理不同形状的数组的能力。较小的数组会广播到较大数组的大小,以便使它们的形状可兼容。
转置
numpy.ndarray.T
numpy.transpose
Numpy计算
条件运算
输出: 或者统计运算
指定轴最大值
amax(参数1: 数组; 参数2: axis=0/1; 0表示列1表示行)
最小值为numpy.amin指定轴平均值mean