Qatorlarning ro'yxatini soni numpy qatoriga qanday o'zgartirasiz?

A ning o'rtacha, min va maksimal qiymatlarini hisoblashni xohlayman:

 import numpy as np

 A = ['33.33', '33.33', '33.33', '33.37']

 NA = np.asarray(A)

 AVG = np.mean(NA, axis=0)

 print AVG

Quyidagiga o'tkazilmasa, bu ishlamaydi:

A = [33.33, 33.33, 33.33, 33.37]

Ushbu ishlashni avtomatik ravishda amalga oshirish mumkinmi?

2

6 javoblar

you want astype

NA = NA.astype(float)
6
qo'shib qo'ydi
Bu juda foydali, rahmat
qo'shib qo'ydi muallif Cristian J Estrada, manba

Sizda qatorlar ro'yxati bor edi

Siz qator qatorlar yaratdingiz

Sizning post-processing uchun bir qator suzish kerak edi; shuning uchun siz qatorni yaratgandan so'ng, ma'lumotlar turini belgilang va u satrlarni yaratilish vaqtidagi suzgichlarga o'zgartiradi

import numpy as np

#list of strings
A = ['33.33', '33.33', '33.33', '33.37']
print A

#numpy of strings
arr = np.array(A)
print arr

#numpy of float32's
arr = np.array(A, dtype=np.float32)
print arr

#post process
print np.mean(arr), np.max(arr), np.min(arr)

>>>
['33.33', '33.33', '33.33', '33.37']
['33.33' '33.33' '33.33' '33.37']
[ 33.33000183  33.33000183  33.33000183  33.36999893]
33.34 33.37 33.33

https://docs.scipy.org/doc/numpy/user/ basics.types.html

4
qo'shib qo'ydi
import numpy as np
A = ['33.33', '33.33', '33.33', '33.37']
# convert to float
arr = np.array(map(float, A)) 
# calc values
print np.mean(arr), np.max(arr), np.min(arr)

Output: 33.34 33.37 33.33

2
qo'shib qo'ydi
Faqatgina eslatma: bu kod map ro'yxatni bermagani uchun Python 3 da ishlamaydi.
qo'shib qo'ydi muallif chthonicdaemon, manba

O'z belgilaringizni suzib yurishga aylantirish uchun eng oddiy usul ro'yxatni tushunishdir:

A = ['33.33', '33.33', '33.33', '33.37']
floats = [float(e) for e in A]

Endi siz bir qatorga o'tishingiz mumkin:

array_A = np.array(floats)

Qolganlari ehtimol sizga ma'lum:

mean, min, max = np.mean(array_A), np.min(array_A), np.max(array_A)
2
qo'shib qo'ydi

A = [float (v) v [33,33 ', '33 .33', '33 .33 ', '33 .37'] ichida v uchun.]

yoki

A = np.array (['33.33', '33 .33 ', '33 .33', '33 .37 '], dtype = float)

2
qo'shib qo'ydi

Mana:

import numpy as np

A = ["33.33", "33.33", "33.33", "33.37"]
for i in range(0,len(A)):
    n = A[i]
    n=float(n)
    A[i] = n

NA = np.asarray(A)

AVG = np.mean(NA, axis=0)
maxx = max(A)
minn = min(A)

print (AVG)
print (maxx)
print (minn)

Umid qilamanki bu yordam! Asosan, sizda min va maxsimum funktsiyalar mavjud emas edi va ro'yxatdagi strings tamsayı bo'lishi kerak edi

0
qo'shib qo'ydi
Agar ro'yxat o'zgartirib bo'linmasa va uni satr sifatida qoldirish kerak bo'lsa? Xayollarga bormaslikka harakat qiling.
qo'shib qo'ydi muallif rayryeng, manba
Hech qanday tushuntirishga ega bo'lmagan kodli dump foydali emas.
qo'shib qo'ydi muallif TigerhawkT3, manba
Bu ishlamaydi, chunki siz qadriyatlarni o'zgartirmadingiz, lekin ularni ro'yxatga kiritmaysiz!
qo'shib qo'ydi muallif chthonicdaemon, manba
Python
Python
372 ishtirokchilar

Bu guruh python dasturlash tilini muhokama qilish uchun. Iltimos, o'zingizni hurmat qiling va faqat dasturlash bo'yicha yozing. Botlar mavzusini @botlarhaqida guruhida muhokama qling! FAQ: @PyFAQ Offtopic: @python_uz_offtopic

Python offtopic group !
Python offtopic group !
150 ishtirokchilar

@python_uz gruppasining offtop gruppasi. offtop bo'lsa ham reklama mumkin emas ) Boshqa dasturlash tiliga oid gruppalar @languages_programming