numpy.ndarray 'nesnenin özniteliği yok' eki
import numpy as np
Student1= [1,2]
test11= np.array([])
np.clip(0,1,20)
NOF=int(2)
print("Enter test score, students name are (1,2,3, etc): ")
for i in range(NOF):
data=int(input())
test11.append(data)
total=0
for value in test11:
total=total+value
print("The sum of all", total)
LİSTE SÜRÜMÜ
import numpy as np
Student1= [1,2]
test11= []
NOF=int(2)
print("Enter test score, students name are (1,2,3, etc): ")
for i in range(NOF):
data=int(input())
test11.append(data)
total=0
for value in test11:
total=total+value
print("The sum of all", total)
Bu, "numpy.ndarray" nesnesinin "append" özniteliği yok hatası vermeye devam ediyor. Test11 dizisine kullanıcı verisi ekleyebilmek istiyorum. Test11'i uyuşmuş bir dizi yapmadan iyi çalışır. Ama sayının boyutunu 20 ile sınırlayabilmek istiyorum. Herhangi bir fikrin var mı? Plz basitleştirin.
HATA KODU: Traceback (en son çağrı): satır 10, test11.append (data) içinde AttributeError: 'numpy.ndarray' nesnesinin 'append' niteliği yok
Yanıtlar
Bu işe yarıyor. Birkaç satırı tekrar değiştirdim ve işaretledim.
import numpy as np
Student1= [1,2]
test11= np.array([0])
NOF=int(2)
print("Enter test score, students name are (1,2,3, etc): ")
data = None
while data is None: # Remove this if you want the program to end if an error occurres.
for i in range(NOF):
try: # Be sure the input is a int.
data=np.array([int(input())])
if data > 20: # Be sure the input is <= 20.
data = None # If greater then 20. Turn data into None
test11 = np.array([0]) # Empty the array.
print("Error")
break # Then break out of the loop
test11 = np.append(data, test11)
except ValueError:
data = None # If it is not a int, data will trun into None
test11 = np.array([0]) # Empty the array.
print("Error")
break
if data is not None: # If data is not None then find the sum.
total=0
for value in test11:
total = test11.sum() # Use the sum fuction, though total=total+value will also work.
print("The sum of all", total)
Sürüm listesi.
# import numpy as np
Student1= [1,2]
test11= []
NOF=int(2)
print("Enter test score, students name are (1,2,3, etc): ")
data = None # Assign ahead of time.
while data is None: # Remove this if you want the program to end if an
error occurres.
for i in range(NOF):
try: # Be sure the input is a int.
data=int(input())
if data > 20: # Be sure the input is <= 20.
data = None # If greater then 20. Turn data into None
test11.clear() # Clear the list if an error occurres.
print("Error")
break # Then break out of the loop
test11.append(data)
except ValueError:
data = None # If it is not a int, data will trun into None
test11.clear() # Clear the list if an error occurres.
print("Error")
break
if data is not None: # If data is not None then find the sum.
total=0
for value in test11:
total=total+value
print("The sum of all", total)
Bu, her şeyi değiştirmeden ve başladığınız şeye benzer şekilde tutmadan yapabildiğim kadar sıkıştırılmış.
Artık kullanıcı 20'den büyük bir sayı veya herhangi bir harf kullanamaz, yoksa bir hata görünecektir.
Numpy dizilerinin 'ekleme' yöntemi yoktur, ihtiyaç duyacağınız şekil ve uzunlukta yaratılmaları gerekir. Yani sizin durumunuzda, en iyi yol bir liste yapmak, değerleri eklemek ve ardından diziyi oluşturmaktır:
import numpy as np
Student1= [1,2]
test11= []
np.clip(0,1,20)
NOF=int(2)
print("Enter test score, students name are (1,2,3, etc): ")
for i in range(NOF):
data=int(input())
test11.append(data)
test11 = np.array(test11)
Çizginizi şu şekilde değiştirebilirsiniz np.append
:
np.append(test11,data)
Ancak numpy dizisine eklemek, bir listeye eklemekten daha pahalıdır. list
Yapıyı kullanmanızı öneririm append
ve sonunda listenizi numpy dizisine dönüştürür.np.array
İşte liste versiyonu:
import numpy as np
Student1= [1,2]
test11= []
np.clip(0,1,20)
NOF=int(2)
print("Enter test score, students name are (1,2,3, etc): ")
for i in range(NOF):
data=int(input())
test11.append(data)
test11 = np.array(test11)
total = test11.sum()
print("The sum of all", total)