@TOC
功能:读取txt文件
功能:迭代多维数组,返回两个元素:一个是坐标,一个是数据
功能:用于初始化数组并分配内存
1.delimiter:分隔符
2.关于双重否定的理解:不含非0元素,直接干掉不含和非,把他们改成全,也就是说翻译过来就是全0.
3.在颜色矩阵中,通道数一般放在最后,比如(16163)。维度0:代表r,g,b每一个通道。
笔者在每一题后设置了分数,笔者认为打出来的分数依然可以对你的学习进行评估。(低于60:代表需要重新学习。60-80:恭喜你掌握了大部分,但有一些细节还需要加深。80-100:太好了,你的学习太棒了)
1.如何把一个浮点数组直接转换成整型(10)(copy代表不会影响原来的函数)
a1 = np.random.randn(100,2)
a1.astype(torch.int32,copy=True)
2.从文本文件中读取数据?(10)
# path:文件路径,
np.genfromtxt(path,delimiter=',')
3.如何得到矩阵的坐标(10)
for index, i in np.ndenumerate(torch.eye(3)):
print(index,i)
4.矩阵的每一行减去算术平均值(10)
a4 = np.random.rand(3,3)*10
np.subtract(a4 ,np.mean(a4,axis=1,keepdims=True))
5.把数组按第n列排序?(10)
# 对某行进行操作,先要选择哪一行再进行操作
a5 = np.random.randint(0, 9, (3, 5))
a5 [a5 [:, 1].argsort()] # 按第二列排序
a5 [:, 1].argsort():返回的是索引
6.如何判断一个二维数组有全为0的列?(10)
# a6.any(axis=0)生成bool值判断这一列是否有非0数,
a6= np.random.randint(0,3,(3,20))
print('\n',a6)
print((~a6.any(axis=0)).any())
7.使用迭代器计算1x3和3x1的数组的和?(10)
# np.nditer([A, B, None]):生成A和B中的元素的全排列,并保留他们3*3矩阵每个位置的地址,通过z[...]来访问该地址。
# it.operands[]:来访问it里面的数据,[]是你要访问的维度
A = np.arange(3).reshape(3, 1)
B = np.arange(3).reshape(1, 3)
it = np.nditer([A, B, None]) # 多维数组的迭代
for x, y, z in it:
z[...] = x + y
print(it.operands[2])
8.创建一个有名字的数组类 (10)
#
class NamedArray(np.ndarray):
# 初始化数组的数据并共享数据以及数组的名字,共享数据指的是copy一份新的数据
def __new__(cls, array, name="no name"):
obj = np.asarray(array).view(cls)
obj.name = name
return obj
# 用于判断该对象是不是直接类名来创建的,通过其他数组派生的就不会有名字,这个时候obj就不为none。
def __array_finalize__(self, obj):
if obj is None: return
self.info = getattr(obj, 'name', "no name")
Z = NamedArray(np.arange(10), "range_10")
print(Z.name)
9.对一个给定数组,如何按第二个数组表示的索引位置将相同位置的加到一起,注意重复的位置要重复加1?(10)
X = [1,2,3,4,5,6]
I = [0,0,0,1,1,2]
F = np.bincount(I,X)
10.对一个(w,h,3)表示的图像,如何计算不重复的颜色(10)
import numpy as np
# 假设您有一个 (w, h, 3) 表示的图像,可以用随机颜色填充
w, h = 4, 4 # 图像的宽度和高度
image = np.random.randint(0, 256, size=(w, h, 3), dtype=np.uint8) # 随机生成图像数据
# 将图像数据重塑为 (w*h, 3) 形状的二维数组,每行表示一个像素的颜色
pixels = image.reshape(-1, 3)
# 使用 np.unique 函数查找不重复的颜色,
unique_colors = np.unique(pixels, axis=0)
# 打印不重复颜色的数量和颜色列表
num_unique_colors = unique_colors.shape[0]
print(f"Number of unique colors: {num_unique_colors}")
print("Unique colors:")
print(unique_colors)